From e622bd5e3b2638b9ab9a712ed1160a66018d6fd7 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 22 二月 2024 09:21:15 +0800
Subject: [PATCH] mrshi

---
 server/service/src/main/java/com/doumee/dao/business/model/Solutions.java                       |    3 
 company/src/components/business/OperaInsuranceApplyWindow.vue                                   |    3 
 server/service/src/main/java/com/doumee/dao/business/model/Member.java                          |   20 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java      |   42 +
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java |    1 
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java         |   91 ++
 server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java   |   29 
 company/src/components/business/OperaTaxesWindow.vue                                            |   13 
 server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java               |    6 
 platform/vue.config.js                                                                          |    4 
 platform/src/api/business/solutions.js                                                          |    3 
 server/company/src/main/java/com/doumee/api/business/NoticesController.java                     |   19 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                               |    5 
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java    |  102 ++
 server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java                 |    9 
 platform/src/layouts/AppLayout.vue                                                              |    6 
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java       |  309 ++++++++--
 company/src/components/business/OperaCompanyDescWindow.vue                                      |  305 +++++-----
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java                    |    4 
 server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java       |    5 
 server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java                |    3 
 server/platform/src/main/java/com/doumee/api/business/CompanyController.java                    |    7 
 server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java             |    4 
 company/src/api/business/company.js                                                             |    6 
 company/src/components/business/modification.vue                                                |   10 
 server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java              |    8 
 server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java                 |    7 
 server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java             |   19 
 company/src/components/business/OperaSolutionsWindow.vue                                        |    5 
 server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java            |   57 +
 platform/src/views/login.vue                                                                    |   16 
 server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java                    |    4 
 server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java                  |    4 
 server/platform/src/main/resources/application.yml                                              |    2 
 server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java            |    3 
 company/src/views/business/dispatchUnit.vue                                                     |    2 
 server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java                |    2 
 server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java        |   41 +
 server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java           |   54 +
 server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java           |   48 +
 server/company/src/main/java/com/doumee/api/business/CompanyController.java                     |   13 
 company/src/views/business/company.vue                                                          |    5 
 server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java          |   14 
 server/company/src/main/java/com/doumee/api/business/SolutionsController.java                   |   17 
 server/service/src/main/java/com/doumee/service/business/SolutionsService.java                  |    4 
 platform/src/views/business/dispatchUnit.vue                                                    |    4 
 company/src/components/business/OperaCompanyWindow.vue                                          |   49 +
 platform/src/views/system/role.vue                                                              |    4 
 platform/src/api/business/company.js                                                            |    9 
 server/company/src/main/java/com/doumee/api/system/SystemMenuController.java                    |   16 
 server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java            |    4 
 company/src/components/system/user/allocationEnterprises.vue                                    |    6 
 server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java                  |    6 
 platform/src/components/system/role/MenuConfigWindow.vue                                        |    4 
 server/company/src/main/resources/application.yml                                               |    2 
 server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java                 |   30 
 /dev/null                                                                                       |  161 -----
 server/platform/src/main/java/com/doumee/task/ScheduleTool.java                                 |   13 
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java      |   17 
 server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java            |   16 
 server/service/src/main/java/com/doumee/service/business/NoticesService.java                    |    8 
 server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java             |    2 
 server/service/src/main/java/com/doumee/dao/business/vo/ApplyNoticeVO.java                      |   23 
 63 files changed, 1,159 insertions(+), 549 deletions(-)

diff --git a/company/src/api/business/company.js b/company/src/api/business/company.js
index a109cd9..27d8e6f 100644
--- a/company/src/api/business/company.js
+++ b/company/src/api/business/company.js
@@ -17,8 +17,12 @@
     return request.post('/business/company/updateById', data)
 }
 
-// 鏌ヨ鍏ㄩ儴鏁版嵁(璐﹀彿鍒嗛厤浼佷笟浣跨敤)
+
 export function pageAll (data) {
+    return request.post('/business/company/list', data)
+}
+// 鏌ヨ鍏ㄩ儴鏁版嵁(璐﹀彿鍒嗛厤浼佷笟浣跨敤)
+export function allForFp (data) {
     return request.post('/business/company/pageAll', data)
 }
 
diff --git a/company/src/components/business/OperaCompanyDescWindow.vue b/company/src/components/business/OperaCompanyDescWindow.vue
index c647036..9577268 100644
--- a/company/src/components/business/OperaCompanyDescWindow.vue
+++ b/company/src/components/business/OperaCompanyDescWindow.vue
@@ -180,156 +180,163 @@
 </template>
 
 <script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
-    import modification from '@/components/business/modification'
-    import { getById, updatePhone } from '@/api/business/company'
-    import { listForCompany } from '@/api/business/solutions'
-    import { sendSms } from '@/api/business/smsEmail'
-    export default {
-        name: 'OperaCompanyDescWindow',
-        extends: BaseOpera,
-        components: { GlobalWindow, OperaCompanyWindow, modification },
-        data () {
-            return {
-                ruleForm: {
-                    phone: '',
-                    code: ''
-                },
-                num: 0,
-                timer: null,
-                // 琛ㄥ崟鏁版嵁
-                form: {},
-                phone: '',
-                code: '',
-                visiblePhone: false,
-                options: [],
-                tableData: []
-            }
-        },
-        created () {
-            this.config({
-                api: '/business/company',
-                'field.id': 'id'
-            })
-        },
-        methods: {
-            close() {
-                this.visiblePhone = false
-                this.phone = ''
-                this.code = ''
-                clearInterval(this.timer)
-                this.num = 0
-            },
-            updatePhoneEvent() {
-                if (!this.phone) {
-                    this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
-                    return
-                }
-                if (!this.code) {
-                    this.$message.warning('璇疯緭鍏ラ獙璇佺爜')
-                    return
-                }
-                updatePhone({
-                    id: this.form.id,
-                    captche: this.code,
-                    phone: this.phone
-                }).then(res => {
-                    this.form.phone = JSON.parse(JSON.stringify(this.phone))
-                    this.$message.success('鎿嶄綔鎴愬姛')
-                    this.visiblePhone = false
-                    this.phone = ''
-                    this.code = ''
-                    clearInterval(this.timer)
-                    this.num = 0
-                })
-            },
-            send() {
-                if (!this.phone) {
-                    this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
-                    return
-                }
-                sendSms({ phone: this.phone })
-                    .then(res => {
-                        this.num = 60
-                        this.setTime()
-                    })
-            },
-            setTime() {
-                this.timer = setInterval(() => {
-                    this.num -= 1
-                    if (this.num === 0) {
-                        clearInterval(this.timer)
-                        this.num = 0
-                    }
-                }, 1000)
-            },
-            open (title, target) {
-                const that = this;
-                this.title = title
-                this.phone = ''
-                this.code = ''
-                clearInterval(this.timer)
-                this.num = 0
-                getById(target.id)
-                    .then(res => {
-                        this.form = res
-                        this.form.type = 1
-
-                        this.form.file = {
-                            imgurl: '',
-                            imgurlfull: ''
-                        }
-                        this.form.file1 = {
-                            imgurl: '',
-                            imgurlfull: ''
-                        }
-                        this.form.file2 = {
-                            imgurl: '',
-                            imgurlfull: ''
-                        }
-                        this.form.file3 = {
-                            imgurl: '',
-                            imgurlfull: ''
-                        }
-
-                        this.form.file.imgurl = res.businessImg.fileurl
-                        this.form.file.imgurlfull = res.businessImg.fileurlFull
-                        this.form.file1.imgurl = res.idcardImgList[0].fileurl
-                        this.form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
-                        this.form.file2.imgurl = res.idcardImgList[1].fileurl
-                        this.form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
-                        this.form.file3.imgurl = res.signImg.fileurl
-                        this.form.file3.imgurlfull = res.signImg.fileurlFull
-
-                        listForCompany({ companyId: target.id })
-                            .then(resa => {
-                                that.form.solutionList = resa.map(item => {
-                                    return {
-                                        solutionBaseId: item.solutionBaseId,
-                                        canAdd: item.canAdd,
-                                        canReduce: item.canReduce
-                                    }
-                                })
-                                that.form.solutionListName = resa.map(item => {
-                                    return {
-                                        solutionName: item.solutionName,
-                                        canAdd: item.canAdd,
-                                        canReduce: item.canReduce
-                                    }
-                                })
-                                console.log(that.form)
-                                that.visible = true
-                            })
-                    })
-            },
-            callback() {
-                this.$emit('success')
-                this.visible = false
-            }
-        }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
+import modification from '@/components/business/modification'
+import { getById, updatePhone } from '@/api/business/company'
+import { listForCompany } from '@/api/business/solutions'
+import { sendSms } from '@/api/business/smsEmail'
+export default {
+  name: 'OperaCompanyDescWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow, OperaCompanyWindow, modification },
+  data () {
+    return {
+      ruleForm: {
+        phone: '',
+        code: ''
+      },
+      dataId: null,
+      num: 0,
+      timer: null,
+      // 琛ㄥ崟鏁版嵁
+      form: {},
+      phone: '',
+      code: '',
+      visiblePhone: false,
+      options: [],
+      tableData: []
     }
+  },
+  created () {
+    this.config({
+      api: '/business/company',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    close () {
+      this.visiblePhone = false
+      this.phone = ''
+      this.code = ''
+      clearInterval(this.timer)
+      this.num = 0
+    },
+    updatePhoneEvent () {
+      if (!this.phone) {
+        this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
+        return
+      }
+      if (!this.code) {
+        this.$message.warning('璇疯緭鍏ラ獙璇佺爜')
+        return
+      }
+      updatePhone({
+        id: this.form.id,
+        captche: this.code,
+        phone: this.phone
+      }).then(res => {
+        this.form.phone = JSON.parse(JSON.stringify(this.phone))
+        this.$message.success('鎿嶄綔鎴愬姛')
+        this.visiblePhone = false
+        this.phone = ''
+        this.code = ''
+        clearInterval(this.timer)
+        this.num = 0
+      })
+    },
+    send () {
+      if (!this.phone) {
+        this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
+        return
+      }
+      sendSms({ phone: this.phone })
+        .then(res => {
+          this.num = 60
+          this.setTime()
+        })
+    },
+    setTime () {
+      this.timer = setInterval(() => {
+        this.num -= 1
+        if (this.num === 0) {
+          clearInterval(this.timer)
+          this.num = 0
+        }
+      }, 1000)
+    },
+    open (title, target) {
+      const that = this
+      this.title = title
+      this.dataId = target.id
+      this.phone = ''
+      this.code = ''
+      clearInterval(this.timer)
+      this.num = 0
+      this.getDetail()
+    },
+    getDetail () {
+      var that =this
+      getById(this.dataId)
+        .then(res => {
+          this.form = res
+          this.form.type = 1
+
+          this.form.file = {
+            imgurl: '',
+            imgurlfull: ''
+          }
+          this.form.file1 = {
+            imgurl: '',
+            imgurlfull: ''
+          }
+          this.form.file2 = {
+            imgurl: '',
+            imgurlfull: ''
+          }
+          this.form.file3 = {
+            imgurl: '',
+            imgurlfull: ''
+          }
+
+          this.form.file.imgurl = res.businessImg.fileurl
+          this.form.file.imgurlfull = res.businessImg.fileurlFull
+          this.form.file1.imgurl = res.idcardImgList[0].fileurl
+          this.form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
+          this.form.file2.imgurl = res.idcardImgList[1].fileurl
+          this.form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
+          this.form.file3.imgurl = res.signImg.fileurl
+          this.form.file3.imgurlfull = res.signImg.fileurlFull
+
+          listForCompany({ companyId: this.dataId })
+            .then(resa => {
+              that.form.solutionList = resa.map(item => {
+                return {
+                  solutionBaseId: item.solutionBaseId,
+                  canAdd: item.canAdd,
+                  canReduce: item.canReduce
+                }
+              })
+              that.form.solutionListName = resa.map(item => {
+                return {
+                  solutionName: item.solutionName,
+                  canAdd: item.canAdd,
+                  canReduce: item.canReduce
+                }
+              })
+              console.log(that.form)
+              that.visible = true
+            })
+        })
+    },
+    callback () {
+      this.getDetail()
+      this.$emit('success')
+      // this.visible = false
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
diff --git a/company/src/components/business/OperaCompanyWindow.vue b/company/src/components/business/OperaCompanyWindow.vue
index 95a701d..d341fef 100644
--- a/company/src/components/business/OperaCompanyWindow.vue
+++ b/company/src/components/business/OperaCompanyWindow.vue
@@ -50,22 +50,32 @@
             <el-form-item label="绾歌川鍙戠エ鎺ユ敹鍦板潃" prop="invoiceAddr">
                 <el-input v-model="form.invoiceAddr" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
+<<<<<<< HEAD
             <el-form-item label="钀ヤ笟鎵х収" prop="businessImg">
                 <div style="width: 100%; height: 100px; display: flex; align-items: center;">
                     <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
                 </div>
+=======
+            <el-form-item label="钀ヤ笟鎵х収" prop="businessImg"  style="height: 120px">
+                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file" @uploadSuccess="result" />
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
             </el-form-item>
-            <el-form-item label="娉曚汉韬唤璇�" prop="idcardImgList">
+            <el-form-item label="娉曚汉韬唤璇�" prop="idcardImgList"  style="height: 120px">
                 <div style="width: 100%; display: flex; align-items: center;">
                     <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file1" @uploadSuccess="result1" />
                     <div style="width: 15px;height: 100%;"></div>
                     <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file2" @uploadSuccess="result2" />
                 </div>
             </el-form-item>
+<<<<<<< HEAD
             <el-form-item label="鐢靛瓙绛剧珷" prop="signImg">
                 <div style="width: 100%; height: 100px; display: flex; align-items: center;">
                     <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />
                 </div>
+=======
+            <el-form-item label="鐢靛瓙绛剧珷" prop="signImg" style="height: 120px">
+                <UploadAvatarImage :uploadData="{ folder: 'company' }" :file="form.file3" @uploadSuccess="result3" />
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
             </el-form-item>
         </el-form>
         <el-button type="primary" style="margin-bottom: 15px;" @click="add" v-if="form.type !== 1">娣诲姞</el-button>
@@ -85,15 +95,15 @@
             <el-table-column
                 align="center"
                 label="淇濋櫓鏂规">
-                <template slot-scope="{row}">
-                    <el-select v-model="row.solutionBaseId" placeholder="璇烽�夋嫨">
-                        <el-option
-                            v-for="item in programme"
-                            :key="item.id"
-                            :label="item.name"
-                            :value="item.id">
-                        </el-option>
-                    </el-select>
+                <template slot-scope="scope">
+                  <el-select  v-model="scope.row.solution"  value-key="id" placeholder="璇烽�夋嫨" change="changeSolution($event,scope.$index)">
+                    <el-option
+                        v-for="item in programme"
+                        :key="item.id"
+                        :label="item.name"
+                        :value="item">
+                    </el-option>
+                  </el-select>
                 </template>
             </el-table-column>
             <el-table-column
@@ -129,7 +139,7 @@
   data () {
     return {
       // 琛ㄥ崟鏁版嵁
-      form: {
+      initParam:{
         id: null,
         name: '',
         code: '',
@@ -155,12 +165,12 @@
         },
         solutionList: [
           {
-            solutionBaseId: '',
+            solution: null,
             canAdd: 0,
             canReduce: 0
           }
         ],
-        type: '',
+        type: '0',
         file: {
           imgurl: '',
           imgurlfull: ''
@@ -176,8 +186,9 @@
         file3: {
           imgurl: '',
           imgurlfull: ''
-        }
+        },
       },
+      form: {},
       timer: null,
       num: 0,
       // 楠岃瘉瑙勫垯
@@ -237,6 +248,10 @@
     }
   },
   methods: {
+    changeSolution(row,index){
+     this.form.solutionList[index].solution=row
+   //   console.log(this.form.solutionList)
+    },
     send () {
       if (!this.form.phone) {
         this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
@@ -257,9 +272,10 @@
         }
       }, 1000)
     },
-    open (title, target) {
+    open (title, target,type) {
       this.title = title
       this.visible = true
+      this.form = this.initParam
       this.getAll()
       // 鏂板缓
       if (target == null) {
@@ -292,7 +308,8 @@
     },
     add () {
       this.form.solutionList.push({
-        solutionName: '',
+        solutionId:null,
+        solution: {},
         canAdd: '',
         canReduce: ''
       })
diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue
index a5adc16..d934f28 100644
--- a/company/src/components/business/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -35,6 +35,9 @@
                     <template v-else>
                       <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
                       <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
+<!--
+                      <el-button v-if="model.status == 2" type="primary" @click="goSign">绛剧讲鎶曚繚鍗�</el-button>
+-->
                       <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
                       <el-button v-if="model.status == 10" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
                       <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
diff --git a/company/src/components/business/OperaSolutionsWindow.vue b/company/src/components/business/OperaSolutionsWindow.vue
index 53aa76f..8b4ccb0 100644
--- a/company/src/components/business/OperaSolutionsWindow.vue
+++ b/company/src/components/business/OperaSolutionsWindow.vue
@@ -1,6 +1,7 @@
 <template>
     <GlobalWindow
         :title="title"
+        width="100%"
         :visible.sync="visible"
         :confirm-working="isWorking"
         @confirm="confirm"
@@ -87,8 +88,8 @@
             <el-form-item label="鎺ユ敹鏂囦欢閭" prop="email">
                 <el-input v-model="form.email" placeholder="璇疯緭鍏�" v-trim/>
             </el-form-item>
-            <el-form-item label="鎶曚繚鍗曠绔犲叧閿瓧" prop="signKeyword">
-                <el-input v-model="form.signKeyword" placeholder="澶氫釜鑻辨枃閫楀彿闅斿紑" v-trim/>
+            <el-form-item label="鎶曚繚鍗曠绔犲叧閿瓧锛堝鏈夊涓叧閿瓧锛岃浣跨敤鑻辨枃鍒嗗彿 ; 闅斿紑锛�" prop="signKeyword">
+                <el-input v-model="form.signKeyword" placeholder="澶氫釜鑻辨枃鍒嗗彿 ; 闅斿紑" v-trim/>
             </el-form-item>
             <el-button type="primary" @click="add">娣诲姞宸ョ</el-button>
             <el-table
diff --git a/company/src/components/business/OperaTaxesWindow.vue b/company/src/components/business/OperaTaxesWindow.vue
index e3d58e5..e4c8953 100644
--- a/company/src/components/business/OperaTaxesWindow.vue
+++ b/company/src/components/business/OperaTaxesWindow.vue
@@ -51,7 +51,11 @@
                     <div class="info_list_item_val" style="color:rgba(249, 86, 1, 0.996078431372549);">{{ model.price }}</div>
                 </div>
             </div>
+<<<<<<< HEAD
             <el-table v-if="model.applyType == 0"
+=======
+            <el-table v-if="model.applyType ==0"
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
                 :data="tableData"
                 border
                 show-summary
@@ -84,6 +88,7 @@
                   </template>
                 </el-table-column>
             </el-table>
+<<<<<<< HEAD
           <el-table
             v-if="model.applyType == 1"
             :data="tableData1"
@@ -91,6 +96,14 @@
             show-summary
             :summary-method="getSummaries"
             style="width: 100%; margin-bottom: 20px;">
+=======
+          <el-table v-if="model.applyType ==1"
+                    :data="tableData1"
+                    border
+                    show-summary
+                    :summary-method="getSummaries"
+                    style="width: 100%; margin-bottom: 20px;">
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
             <el-table-column
                 label="淇濆崟"
                 align="center"
diff --git a/company/src/components/business/modification.vue b/company/src/components/business/modification.vue
index 58b12c2..ad5bf0a 100644
--- a/company/src/components/business/modification.vue
+++ b/company/src/components/business/modification.vue
@@ -23,12 +23,12 @@
                 align="center"
                 label="淇濋櫓鏂规">
                 <template slot-scope="{row}">
-                    <el-select v-model="row.solutionBaseId" placeholder="璇烽�夋嫨">
+                    <el-select v-model="row.solution" placeholder="璇烽�夋嫨">
                         <el-option
                             v-for="item in programme"
                             :key="item.id"
                             :label="item.name"
-                            :value="item.id">
+                            :value="{id:item.id,baseId:item.baseId}">
                         </el-option>
                     </el-select>
                 </template>
@@ -71,7 +71,7 @@
                     id: null,
                     solutionList: [
                         {
-                            solutionBaseId: '',
+                            solution: {id: null, baseId: null },
                             canAdd: 0,
                             canReduce: 0
                         }
@@ -126,7 +126,7 @@
                     .then(resa => {
                         that.form.solutionList = resa.map(item => {
                             return {
-                                solutionBaseId: item.solutionBaseId,
+                                solution: {id: item.baseSolutionId, baseId: item.solutionId },
                                 canAdd: item.canAdd,
                                 canReduce: item.canReduce
                             }
@@ -136,7 +136,7 @@
             },
             add() {
                 this.form.solutionList.push({
-                    solutionName: '',
+                    solution: {id: null, baseId: null },
                     canAdd: '',
                     canReduce: ''
                 })
diff --git a/company/src/components/system/user/allocationEnterprises.vue b/company/src/components/system/user/allocationEnterprises.vue
index 082c892..d9a9c14 100644
--- a/company/src/components/system/user/allocationEnterprises.vue
+++ b/company/src/components/system/user/allocationEnterprises.vue
@@ -23,7 +23,7 @@
 <script>
     import BasePage from '@/components/base/BasePage'
     import GlobalWindow from '@/components/common/GlobalWindow'
-    import { pageAll } from '@/api/business/company'
+    import { allForFp } from '@/api/business/company'
     import { create } from '@/api/business/companyPermission'
     export default {
         name: 'allocationEnterprises',
@@ -47,7 +47,7 @@
                 this.visible = true
                 this.title = title
                 this.user = target
-                pageAll({ userId: target.id })
+              allForFp({ userId: target.id })
                     .then(res => {
                         this.company = res.map(r => {
                             return {
@@ -73,7 +73,7 @@
                     companyIdList: this.selectedIds
                 })
                     .then(() => {
-                        this.$tip.apiSuccess('瑙掕壊閰嶇疆鎴愬姛锛岀敤鎴烽噸鏂扮櫥褰曞悗鐢熸晥')
+                        this.$tip.apiSuccess('浼佷笟鍒嗛厤鎴愬姛锛岀敤鎴烽噸鏂扮櫥褰曞悗鐢熸晥')
                         this.visible = false
                         this.$emit('success')
                     })
diff --git a/company/src/views/business/company.vue b/company/src/views/business/company.vue
index ca2a24f..a527481 100644
--- a/company/src/views/business/company.vue
+++ b/company/src/views/business/company.vue
@@ -5,9 +5,6 @@
             <el-form-item label="浼佷笟鍚嶇О" prop="name">
                 <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ紒涓氬悕绉�" @keypress.enter.native="search"></el-input>
             </el-form-item>
-            <el-form-item label="鎵�灞炲晢鎴�" prop="name">
-                <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ユ墍灞炲晢鎴�" @keypress.enter.native="search"></el-input>
-            </el-form-item>
             <el-form-item label="鎵�灞炵悊璧斿憳" prop="username">
                 <el-input v-model="searchForm.username" placeholder="璇疯緭鍏ユ墍灞炵悊璧斿憳" @keypress.enter.native="search"></el-input>
             </el-form-item>
@@ -19,7 +16,7 @@
         <!-- 琛ㄦ牸鍜屽垎椤� -->
         <template v-slot:table-wrap>
             <ul class="toolbar" v-permissions="['business:company:create']">
-                <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('鏂板缓浼佷笟')" v-permissions="['business:company:create']">鏂板缓浼佷笟</el-button></li>
+                <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('鏂板缓浼佷笟',null)" v-permissions="['business:company:create']">鏂板缓浼佷笟</el-button></li>
             </ul>
             <el-table
                 v-loading="isWorking.search"
diff --git a/company/src/views/business/dispatchUnit.vue b/company/src/views/business/dispatchUnit.vue
index 39b3bad..cf32e52 100644
--- a/company/src/views/business/dispatchUnit.vue
+++ b/company/src/views/business/dispatchUnit.vue
@@ -2,7 +2,7 @@
   <TableLayout :permissions="['business:dispatchunit:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鎵�灞炰笟" prop="companyId">
+      <el-form-item label="鎵�灞炰紒涓�" prop="companyId">
         <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
           <el-option
               v-for="item in companyList"
diff --git a/platform/.env b/platform/.env
deleted file mode 100644
index e6bec69..0000000
--- a/platform/.env
+++ /dev/null
@@ -1,10 +0,0 @@
-# 鐜閫氱敤閰嶇疆
-
-# 璺敱鏂瑰紡
-VUE_APP_ROUTER_MODE = 'hash'
-
-# 椤圭洰涓婁笅鏂囪矾寰�
-VUE_APP_CONTEXT_PATH = '/'
-
-# 鎺ュ彛鍓嶇紑
-VUE_APP_API_PREFIX = '/api'
diff --git a/platform/.env.development b/platform/.env.development
deleted file mode 100644
index aa07462..0000000
--- a/platform/.env.development
+++ /dev/null
@@ -1,14 +0,0 @@
-# 寮�鍙戠幆澧冮厤缃�
-NODE_ENV = 'development'
-
-# 浼佷笟绔�-浠佸悍
-# VUE_APP_API = 'http://192.168.0.129:10031/'
-
-# 骞冲彴绔�-浠佸悍
-VUE_APP_API = 'http://192.168.0.129:10030/'
-
-# 骞冲彴绔�-钀嶅
-# VUE_APP_API = 'http://192.168.0.105:10023/'
-
-# VUE_APP_API = 'http://localhost:10023/'
-# VUE_APP_API = 'http://localhost:10023/'
diff --git a/platform/.env.production b/platform/.env.production
deleted file mode 100644
index 4ad77c8..0000000
--- a/platform/.env.production
+++ /dev/null
@@ -1,10 +0,0 @@
-# 鐢熶骇鐜閰嶇疆
-NODE_ENV = 'production'
-
-VUE_APP_API_PREFIX = '/yyb_web_api'
-
-# 骞冲彴绔�
-# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
-
-# 浼佷笟绔�
-VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
diff --git a/platform/.gitignore b/platform/.gitignore
deleted file mode 100644
index 245a964..0000000
--- a/platform/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-.DS_Store
-coderd.json
-node_modules
-/dist
-
-
-# local env files
-.env.local
-.env.*.local
-
-# Log files
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-pnpm-debug.log*
-
-# Editor directories and files
-.idea
-.vscode
-*.suo
-*.ntvs*
-*.njsproj
-*.sln
-*.sw?
diff --git a/platform/README.md b/platform/README.md
deleted file mode 100644
index 17c5eac..0000000
--- a/platform/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-妗嗘灦锛欵va v2.0
-Eva瀹樼綉锛歨ttp://eva.adjust-rd.com
-
-# 椤圭洰鐩綍璇存槑
-- src/assets锛氶潤鎬佽祫婧愮洰褰�
-- src/components锛氳嚜瀹氫箟缁勪欢鐩綍
-- src/plugins锛氭彃浠剁洰褰�
-- src/router锛氳矾鐢遍厤缃洰褰�
-- src/store锛歷uex store鐩綍
-- src/utils锛氬伐鍏风洰褰�
-- src/views锛氶〉闈㈢洰褰�
-
-# 鎶�鏈爤
-- 璺敱锛歏ue-Router-3.2.0
-- 棰勭紪璇戯細SASS-4.12.0
-- HTTP搴擄細axios-0.21.1
-- UI搴擄細element-ui-2.3.6
-- 浠g爜瑙勮寖妫�鏌ワ細eslint-6.7.2
-
-# 浠g爜妫�鏌�
-浠g爜妫�鏌ヨ鍒欓厤缃湪package.json鐨別slintConfig瀵硅薄涓�
-
-# 璺敱
-璺敱閰嶇疆鍦╯rc/router/index.js涓�
-
-# 鎺ュ彛浠g悊鍜岃皟鐢�
-鎺ュ彛浠g悊璺緞閰嶇疆鍦╲ue.config.js鏂囦欢涓紝鎺ュ彛璋冪敤宸ュ叿灏佽鍦╯rc/utils/request.js涓紝璋冪敤绀轰緥濡備笅
-```javascript
-import request from '@/utils/request'
-
-request.post('/api/myinterface', {
-  param1: 'param value'
-})
-    .then(data => {
-      console.log('璇锋眰鎴愬姛锛屾帴鍙h繑鍥�', data)
-    })
-    .catch(e => {
-      console.log('璋冪敤澶辫触', e)
-    })
-```
diff --git a/platform/babel.config.js b/platform/babel.config.js
deleted file mode 100644
index e955840..0000000
--- a/platform/babel.config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
-  presets: [
-    '@vue/cli-plugin-babel/preset'
-  ]
-}
diff --git a/platform/package-lock.json b/platform/package-lock.json
deleted file mode 100644
index d81e8e8..0000000
--- a/platform/package-lock.json
+++ /dev/null
@@ -1,14309 +0,0 @@
-{
-  "name": "intelligent_manufacture",
-  "version": "1.0.0",
-  "lockfileVersion": 1,
-  "requires": true,
-  "dependencies": {
-    "@babel/code-frame": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz",
-      "integrity": "sha1-3PyCa+72XnXFDiHTg319lXmN1lg=",
-      "dev": true,
-      "requires": {
-        "@babel/highlight": "^7.12.13"
-      }
-    },
-    "@babel/compat-data": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.0.tgz",
-      "integrity": "sha1-qQESi84q0CVl35Xm7L8ZXPlGWRk=",
-      "dev": true
-    },
-    "@babel/core": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.2.tgz",
-      "integrity": "sha1-VORTNP/AFyBI5ck97TZGHTrUxBc=",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.12.13",
-        "@babel/generator": "^7.14.2",
-        "@babel/helper-compilation-targets": "^7.13.16",
-        "@babel/helper-module-transforms": "^7.14.2",
-        "@babel/helpers": "^7.14.0",
-        "@babel/parser": "^7.14.2",
-        "@babel/template": "^7.12.13",
-        "@babel/traverse": "^7.14.2",
-        "@babel/types": "^7.14.2",
-        "convert-source-map": "^1.7.0",
-        "debug": "^4.1.0",
-        "gensync": "^1.0.0-beta.2",
-        "json5": "^2.1.2",
-        "semver": "^6.3.0",
-        "source-map": "^0.5.0"
-      }
-    },
-    "@babel/generator": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/generator/download/@babel/generator-7.14.2.tgz?cache=0&sync_timestamp=1620839974232&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.14.2.tgz",
-      "integrity": "sha1-1Xc+i1V9Qh/Wzg1e+l/X/CJWfDA=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.14.2",
-        "jsesc": "^2.5.1",
-        "source-map": "^0.5.0"
-      }
-    },
-    "@babel/helper-annotate-as-pure": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.12.13.tgz?cache=0&sync_timestamp=1612314636125&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.12.13.tgz",
-      "integrity": "sha1-D1jobfxLs7H819uAZXDhd9Q5tqs=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.12.13"
-      }
-    },
-    "@babel/helper-builder-binary-assignment-operator-visitor": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz",
-      "integrity": "sha1-a8IDYciLCnTQUTemXKyNPL9vYfw=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-explode-assignable-expression": "^7.12.13",
-        "@babel/types": "^7.12.13"
-      }
-    },
-    "@babel/helper-compilation-targets": {
-      "version": "7.13.16",
-      "resolved": "https://registry.nlark.com/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.13.16.tgz?cache=0&sync_timestamp=1618918364728&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.13.16.tgz",
-      "integrity": "sha1-bpHczxXj9D5VVt/+MthgEJiHVjw=",
-      "dev": true,
-      "requires": {
-        "@babel/compat-data": "^7.13.15",
-        "@babel/helper-validator-option": "^7.12.17",
-        "browserslist": "^4.14.5",
-        "semver": "^6.3.0"
-      }
-    },
-    "@babel/helper-create-class-features-plugin": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.14.2.tgz?cache=0&sync_timestamp=1620839457478&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.14.2.tgz",
-      "integrity": "sha1-TkVbAymvKcLTrSVLXdWu00WVOF0=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.12.13",
-        "@babel/helper-function-name": "^7.14.2",
-        "@babel/helper-member-expression-to-functions": "^7.13.12",
-        "@babel/helper-optimise-call-expression": "^7.12.13",
-        "@babel/helper-replace-supers": "^7.13.12",
-        "@babel/helper-split-export-declaration": "^7.12.13"
-      }
-    },
-    "@babel/helper-create-regexp-features-plugin": {
-      "version": "7.12.17",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.12.17.tgz",
-      "integrity": "sha1-oqyH6eMZJprGVbjUQV6U041mPLc=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.12.13",
-        "regexpu-core": "^4.7.1"
-      }
-    },
-    "@babel/helper-define-polyfill-provider": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-define-polyfill-provider/download/@babel/helper-define-polyfill-provider-0.2.0.tgz",
-      "integrity": "sha1-pkAFF3IEX+2q7MbwxsafAr3TS/E=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-compilation-targets": "^7.13.0",
-        "@babel/helper-module-imports": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/traverse": "^7.13.0",
-        "debug": "^4.1.1",
-        "lodash.debounce": "^4.0.8",
-        "resolve": "^1.14.2",
-        "semver": "^6.1.2"
-      }
-    },
-    "@babel/helper-explode-assignable-expression": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.13.0.tgz?cache=0&sync_timestamp=1614034839085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.13.0.tgz",
-      "integrity": "sha1-F7XFn/Rz2flW9A71cM86dsoSZX8=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.13.0"
-      }
-    },
-    "@babel/helper-function-name": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/helper-function-name/download/@babel/helper-function-name-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.14.2.tgz",
-      "integrity": "sha1-OXaItZB2C273cltfCGDIJCfrqsI=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-get-function-arity": "^7.12.13",
-        "@babel/template": "^7.12.13",
-        "@babel/types": "^7.14.2"
-      }
-    },
-    "@babel/helper-get-function-arity": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.12.13.tgz?cache=0&sync_timestamp=1612314686467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.12.13.tgz",
-      "integrity": "sha1-vGNFHUA6OzCCuX4diz/lvUCR5YM=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.12.13"
-      }
-    },
-    "@babel/helper-hoist-variables": {
-      "version": "7.13.16",
-      "resolved": "https://registry.nlark.com/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.13.16.tgz?cache=0&sync_timestamp=1618917701165&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.13.16.tgz",
-      "integrity": "sha1-GxZRJJ6UtR+PDTNDmEPjPjl3WzA=",
-      "dev": true,
-      "requires": {
-        "@babel/traverse": "^7.13.15",
-        "@babel/types": "^7.13.16"
-      }
-    },
-    "@babel/helper-member-expression-to-functions": {
-      "version": "7.13.12",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.13.12.tgz?cache=0&sync_timestamp=1616428156989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.13.12.tgz",
-      "integrity": "sha1-3+No8m1CagcpnY1lE4IXaCFubXI=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.13.12"
-      }
-    },
-    "@babel/helper-module-imports": {
-      "version": "7.13.12",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.13.12.tgz?cache=0&sync_timestamp=1616428145076&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.13.12.tgz",
-      "integrity": "sha1-xqNppvNiHLJdoBQHhoTakZa2GXc=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.13.12"
-      }
-    },
-    "@babel/helper-module-transforms": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.14.2.tgz",
-      "integrity": "sha1-rBzDDuR7lF4+DE2xL6DFOJUJ3+U=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.13.12",
-        "@babel/helper-replace-supers": "^7.13.12",
-        "@babel/helper-simple-access": "^7.13.12",
-        "@babel/helper-split-export-declaration": "^7.12.13",
-        "@babel/helper-validator-identifier": "^7.14.0",
-        "@babel/template": "^7.12.13",
-        "@babel/traverse": "^7.14.2",
-        "@babel/types": "^7.14.2"
-      }
-    },
-    "@babel/helper-optimise-call-expression": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.12.13.tgz?cache=0&sync_timestamp=1612314687212&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.12.13.tgz",
-      "integrity": "sha1-XALRcbTIYVsecWP4iMHIHDCiquo=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.12.13"
-      }
-    },
-    "@babel/helper-plugin-utils": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.13.0.tgz",
-      "integrity": "sha1-gGUmzhJa7QM3O8QWqCgyHjpqM68=",
-      "dev": true
-    },
-    "@babel/helper-remap-async-to-generator": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.13.0.tgz?cache=0&sync_timestamp=1614034833096&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.13.0.tgz",
-      "integrity": "sha1-N2p2DZ97SyB3qd0Fqpw5J8rbIgk=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.12.13",
-        "@babel/helper-wrap-function": "^7.13.0",
-        "@babel/types": "^7.13.0"
-      }
-    },
-    "@babel/helper-replace-supers": {
-      "version": "7.13.12",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.13.12.tgz?cache=0&sync_timestamp=1616428110982&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-replace-supers%2Fdownload%2F%40babel%2Fhelper-replace-supers-7.13.12.tgz",
-      "integrity": "sha1-ZEL0wa2RJQJIGlZKc4beDHf/OAQ=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-member-expression-to-functions": "^7.13.12",
-        "@babel/helper-optimise-call-expression": "^7.12.13",
-        "@babel/traverse": "^7.13.0",
-        "@babel/types": "^7.13.12"
-      }
-    },
-    "@babel/helper-simple-access": {
-      "version": "7.13.12",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.13.12.tgz?cache=0&sync_timestamp=1616428158129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.13.12.tgz",
-      "integrity": "sha1-3WxTivthgZ0gWgEsMXkqOcel6vY=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.13.12"
-      }
-    },
-    "@babel/helper-skip-transparent-expression-wrappers": {
-      "version": "7.12.1",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-skip-transparent-expression-wrappers/download/@babel/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
-      "integrity": "sha1-Ri3GOn5DWt6EaDhcY9K4TM5LPL8=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.12.1"
-      }
-    },
-    "@babel/helper-split-export-declaration": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.12.13.tgz?cache=0&sync_timestamp=1612314686094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.12.13.tgz",
-      "integrity": "sha1-6UML4AuvPoiw4T5vnU6vITY3KwU=",
-      "dev": true,
-      "requires": {
-        "@babel/types": "^7.12.13"
-      }
-    },
-    "@babel/helper-validator-identifier": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.14.0.tgz?cache=0&sync_timestamp=1619727556616&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.14.0.tgz",
-      "integrity": "sha1-0mytikfGUoaxXfFUcxml0Lzycog=",
-      "dev": true
-    },
-    "@babel/helper-validator-option": {
-      "version": "7.12.17",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-option/download/@babel/helper-validator-option-7.12.17.tgz?cache=0&sync_timestamp=1613661300791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-option%2Fdownload%2F%40babel%2Fhelper-validator-option-7.12.17.tgz",
-      "integrity": "sha1-0fvwEuGnm37rv9xtJwuq+NnrmDE=",
-      "dev": true
-    },
-    "@babel/helper-wrap-function": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.13.0.tgz?cache=0&sync_timestamp=1614034839729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.13.0.tgz",
-      "integrity": "sha1-vbXGb9qFJuwjWriUrVOhI1x5/MQ=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-function-name": "^7.12.13",
-        "@babel/template": "^7.12.13",
-        "@babel/traverse": "^7.13.0",
-        "@babel/types": "^7.13.0"
-      }
-    },
-    "@babel/helpers": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/helpers/download/@babel/helpers-7.14.0.tgz?cache=0&sync_timestamp=1619727503327&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.14.0.tgz",
-      "integrity": "sha1-6ptr6UeKE9b5Ydu182v3Xi87j2I=",
-      "dev": true,
-      "requires": {
-        "@babel/template": "^7.12.13",
-        "@babel/traverse": "^7.14.0",
-        "@babel/types": "^7.14.0"
-      }
-    },
-    "@babel/highlight": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/highlight/download/@babel/highlight-7.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.14.0.tgz",
-      "integrity": "sha1-MZfjdXEe9r+DTmfQ2uyI5PRhE88=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-validator-identifier": "^7.14.0",
-        "chalk": "^2.0.0",
-        "js-tokens": "^4.0.0"
-      }
-    },
-    "@babel/parser": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/parser/download/@babel/parser-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.14.2.tgz",
-      "integrity": "sha1-DBaAqkStRgWxbL3MXDQaYb3px0Y=",
-      "dev": true
-    },
-    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
-      "version": "7.13.12",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/download/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining%2Fdownload%2F%40babel%2Fplugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz",
-      "integrity": "sha1-o0hNhNC1SfP8kWuZ7keD8m+rrSo=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
-        "@babel/plugin-proposal-optional-chaining": "^7.13.12"
-      }
-    },
-    "@babel/plugin-proposal-async-generator-functions": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.14.2.tgz",
-      "integrity": "sha1-OiCFq79dX5YtSA28gTRzhe1i6x4=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-remap-async-to-generator": "^7.13.0",
-        "@babel/plugin-syntax-async-generators": "^7.8.4"
-      }
-    },
-    "@babel/plugin-proposal-class-properties": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.13.0.tgz?cache=0&sync_timestamp=1614034504606&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.13.0.tgz",
-      "integrity": "sha1-FGN2AAuU79AB5XpAqIpSWvqrnzc=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-class-features-plugin": "^7.13.0",
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-proposal-class-static-block": {
-      "version": "7.13.11",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-class-static-block/download/@babel/plugin-proposal-class-static-block-7.13.11.tgz",
-      "integrity": "sha1-b8u6SpYnAsF+U3Ggx7Oa/eGG1wM=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-class-static-block": "^7.12.13"
-      }
-    },
-    "@babel/plugin-proposal-decorators": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.14.2.tgz?cache=0&sync_timestamp=1620840050927&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.14.2.tgz",
-      "integrity": "sha1-5ow8XkpqCINEVlaCVvw+cbk1kM8=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-class-features-plugin": "^7.14.2",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-decorators": "^7.12.13"
-      }
-    },
-    "@babel/plugin-proposal-dynamic-import": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.14.2.tgz",
-      "integrity": "sha1-Aeur18OBz/Ix+kPjApOaneW+nZ8=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-dynamic-import": "^7.8.3"
-      }
-    },
-    "@babel/plugin-proposal-export-namespace-from": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-export-namespace-from/download/@babel/plugin-proposal-export-namespace-from-7.14.2.tgz",
-      "integrity": "sha1-YlQvlKqc6Pbbp57saYryIRIlN5E=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
-      }
-    },
-    "@babel/plugin-proposal-json-strings": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.14.2.tgz?cache=0&sync_timestamp=1620840046817&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.14.2.tgz",
-      "integrity": "sha1-gwtOJCanguiyh4+/4suoW3DL+Yw=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-json-strings": "^7.8.3"
-      }
-    },
-    "@babel/plugin-proposal-logical-assignment-operators": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-logical-assignment-operators/download/@babel/plugin-proposal-logical-assignment-operators-7.14.2.tgz",
-      "integrity": "sha1-IiNIwIChZ44OdOpj/nbydYgtH9c=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
-      }
-    },
-    "@babel/plugin-proposal-nullish-coalescing-operator": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz",
-      "integrity": "sha1-QlsR3GL8JpOaKrQsu6aAvfVzRUY=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
-      }
-    },
-    "@babel/plugin-proposal-numeric-separator": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.14.2.tgz",
-      "integrity": "sha1-grTMBlcRQ/r1BiYQSzNd1xuqT54=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-numeric-separator": "^7.10.4"
-      }
-    },
-    "@babel/plugin-proposal-object-rest-spread": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.14.2.tgz?cache=0&sync_timestamp=1620840046672&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.14.2.tgz",
-      "integrity": "sha1-4X1Bj4HMED/t1M4DfhgcgFYiWrw=",
-      "dev": true,
-      "requires": {
-        "@babel/compat-data": "^7.14.0",
-        "@babel/helper-compilation-targets": "^7.13.16",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
-        "@babel/plugin-transform-parameters": "^7.14.2"
-      }
-    },
-    "@babel/plugin-proposal-optional-catch-binding": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.14.2.tgz",
-      "integrity": "sha1-FQ1OWOUlsWqaFDG9UybE7thw1xc=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
-      }
-    },
-    "@babel/plugin-proposal-optional-chaining": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.14.2.tgz?cache=0&sync_timestamp=1620840046588&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.14.2.tgz",
-      "integrity": "sha1-34FxqLnEPr9MHavmMRtDLYPhs04=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
-        "@babel/plugin-syntax-optional-chaining": "^7.8.3"
-      }
-    },
-    "@babel/plugin-proposal-private-methods": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.13.0.tgz?cache=0&sync_timestamp=1614034842648&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-private-methods%2Fdownload%2F%40babel%2Fplugin-proposal-private-methods-7.13.0.tgz",
-      "integrity": "sha1-BL1MbUD25rv6L1fi2AlLrZAO94c=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-class-features-plugin": "^7.13.0",
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-proposal-private-property-in-object": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/plugin-proposal-private-property-in-object/download/@babel/plugin-proposal-private-property-in-object-7.14.0.tgz?cache=0&sync_timestamp=1619727515932&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-proposal-private-property-in-object%2Fdownload%2F%40babel%2Fplugin-proposal-private-property-in-object-7.14.0.tgz",
-      "integrity": "sha1-saHyAwWGudNInMJhedLrWIMndjY=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.12.13",
-        "@babel/helper-create-class-features-plugin": "^7.14.0",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/plugin-syntax-private-property-in-object": "^7.14.0"
-      }
-    },
-    "@babel/plugin-proposal-unicode-property-regex": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.12.13.tgz",
-      "integrity": "sha1-vr3lEzm+gpwXqqrO0YZB3rYrObo=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-syntax-async-generators": {
-      "version": "7.8.4",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz",
-      "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-class-properties": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.12.13.tgz",
-      "integrity": "sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-syntax-class-static-block": {
-      "version": "7.12.13",
-      "resolved": "https://registry.nlark.com/@babel/plugin-syntax-class-static-block/download/@babel/plugin-syntax-class-static-block-7.12.13.tgz",
-      "integrity": "sha1-jj1nSwYT5nl1zqwndsl7YMr8XJw=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-syntax-decorators": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.12.13.tgz",
-      "integrity": "sha1-+sgpvzx+9KG8kWJXtAPljGva9kg=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-syntax-dynamic-import": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz",
-      "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-export-namespace-from": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-export-namespace-from/download/@babel/plugin-syntax-export-namespace-from-7.8.3.tgz",
-      "integrity": "sha1-AolkqbqA28CUyRXEh618TnpmRlo=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.3"
-      }
-    },
-    "@babel/plugin-syntax-json-strings": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz",
-      "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-jsx": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.12.13.tgz",
-      "integrity": "sha1-BE+4HrrWaY/mLEeIdVdby7m3DxU=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-syntax-logical-assignment-operators": {
-      "version": "7.10.4",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-logical-assignment-operators/download/@babel/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
-      "integrity": "sha1-ypHvRjA1MESLkGZSusLp/plB9pk=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.10.4"
-      }
-    },
-    "@babel/plugin-syntax-nullish-coalescing-operator": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
-      "integrity": "sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-numeric-separator": {
-      "version": "7.10.4",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz?cache=0&sync_timestamp=1593521791666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz",
-      "integrity": "sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.10.4"
-      }
-    },
-    "@babel/plugin-syntax-object-rest-spread": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz",
-      "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-optional-catch-binding": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz",
-      "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-optional-chaining": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz",
-      "integrity": "sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.8.0"
-      }
-    },
-    "@babel/plugin-syntax-private-property-in-object": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/plugin-syntax-private-property-in-object/download/@babel/plugin-syntax-private-property-in-object-7.14.0.tgz",
-      "integrity": "sha1-dipLq+xhF2/sbIhIDexANysUDAs=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-syntax-top-level-await": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.12.13.tgz",
-      "integrity": "sha1-xfD6biSfW3OXJ/kjVAz3qAYTAXg=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-arrow-functions": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.13.0.tgz?cache=0&sync_timestamp=1614034822229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.13.0.tgz",
-      "integrity": "sha1-EKWb661S1jegJ6+mkujVzv9ePa4=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-async-to-generator": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.13.0.tgz?cache=0&sync_timestamp=1614034507617&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.13.0.tgz",
-      "integrity": "sha1-jhEr9ncbgr8el05eJoBsXJmqUW8=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-remap-async-to-generator": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-block-scoped-functions": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.12.13.tgz?cache=0&sync_timestamp=1612314757904&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.12.13.tgz",
-      "integrity": "sha1-qb8YNvKjm062zwmWdzneKepL9MQ=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-block-scoping": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.14.2.tgz",
-      "integrity": "sha1-dhyxKrWojWQK1K9KqB+CDmtf31w=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-classes": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.14.2.tgz?cache=0&sync_timestamp=1620840046699&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.14.2.tgz",
-      "integrity": "sha1-PxGWxXCfBkwlKtBWIH2Ht66y0D0=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-annotate-as-pure": "^7.12.13",
-        "@babel/helper-function-name": "^7.14.2",
-        "@babel/helper-optimise-call-expression": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-replace-supers": "^7.13.12",
-        "@babel/helper-split-export-declaration": "^7.12.13",
-        "globals": "^11.1.0"
-      }
-    },
-    "@babel/plugin-transform-computed-properties": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.13.0.tgz?cache=0&sync_timestamp=1614034823289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.13.0.tgz",
-      "integrity": "sha1-hFxui5u1U3ax+guS7wvcjqBmRO0=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-destructuring": {
-      "version": "7.13.17",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.13.17.tgz?cache=0&sync_timestamp=1618960864725&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-destructuring%2Fdownload%2F%40babel%2Fplugin-transform-destructuring-7.13.17.tgz",
-      "integrity": "sha1-Z42WV2Y4wZ1bNrMyUE0/1uBt6ic=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-dotall-regex": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314760609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-dotall-regex%2Fdownload%2F%40babel%2Fplugin-transform-dotall-regex-7.12.13.tgz",
-      "integrity": "sha1-PxYBzCmQW/y2f1ORDxl66v67Ja0=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-duplicate-keys": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.12.13.tgz?cache=0&sync_timestamp=1612314757993&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-duplicate-keys%2Fdownload%2F%40babel%2Fplugin-transform-duplicate-keys-7.12.13.tgz",
-      "integrity": "sha1-bwa4eouAP9ko5UuBwljwoAM5BN4=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-exponentiation-operator": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.12.13.tgz?cache=0&sync_timestamp=1612314760620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.12.13.tgz",
-      "integrity": "sha1-TVI5C5onPmUeSrpq7knvQOgM0KE=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-for-of": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.13.0.tgz?cache=0&sync_timestamp=1614034500476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-for-of%2Fdownload%2F%40babel%2Fplugin-transform-for-of-7.13.0.tgz",
-      "integrity": "sha1-x5n4gagJGsJrVIZ6hFw+l9JpYGI=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-function-name": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.12.13.tgz?cache=0&sync_timestamp=1612314760791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-function-name%2Fdownload%2F%40babel%2Fplugin-transform-function-name-7.12.13.tgz",
-      "integrity": "sha1-uwJEUvmq7YYdN0yOeiQlLOOlAFE=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-function-name": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-literals": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.12.13.tgz",
-      "integrity": "sha1-LKRbr+SoIBl88xV5Sk0mVg/kvbk=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-member-expression-literals": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.12.13.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.12.13.tgz",
-      "integrity": "sha1-X/pmzVm54ZExTJ8fgDuTjowIHkA=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-modules-amd": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.14.2.tgz",
-      "integrity": "sha1-ZiKAb+GnwHoTiERCIu+VNfLKF7A=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.14.2",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "babel-plugin-dynamic-import-node": "^2.3.3"
-      }
-    },
-    "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.14.0.tgz",
-      "integrity": "sha1-UrwZnLWB4Jku26Dw+ANWRnWH8WE=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.14.0",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-simple-access": "^7.13.12",
-        "babel-plugin-dynamic-import-node": "^2.3.3"
-      }
-    },
-    "@babel/plugin-transform-modules-systemjs": {
-      "version": "7.13.8",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.13.8.tgz?cache=0&sync_timestamp=1614383098157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.13.8.tgz",
-      "integrity": "sha1-bQZu4r/zx7PWC/KN7Baa2ZODGuM=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-hoist-variables": "^7.13.0",
-        "@babel/helper-module-transforms": "^7.13.0",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-validator-identifier": "^7.12.11",
-        "babel-plugin-dynamic-import-node": "^2.3.3"
-      }
-    },
-    "@babel/plugin-transform-modules-umd": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.14.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.14.0.tgz",
-      "integrity": "sha1-L4F50bvJJjZlzkpl8wVSay6orDQ=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-transforms": "^7.14.0",
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-named-capturing-groups-regex": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314757088&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-named-capturing-groups-regex%2Fdownload%2F%40babel%2Fplugin-transform-named-capturing-groups-regex-7.12.13.tgz",
-      "integrity": "sha1-IhNyWl9bu+NktQw7pZmMlZnFydk=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-new-target": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.12.13.tgz",
-      "integrity": "sha1-4i2MOvJLFQ3VKMvW5oXnmb8cNRw=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-object-super": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.12.13.tgz?cache=0&sync_timestamp=1612314760724&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.12.13.tgz",
-      "integrity": "sha1-tEFqLWO4974xTz00m9VanBtRcfc=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13",
-        "@babel/helper-replace-supers": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-parameters": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.14.2.tgz",
-      "integrity": "sha1-5CkPcuDp6DEADQZkJ8RmcJjezDE=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-property-literals": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.12.13.tgz",
-      "integrity": "sha1-TmqeN4ZNjxs7wOLc57+IV9uLGoE=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-regenerator": {
-      "version": "7.13.15",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.13.15.tgz",
-      "integrity": "sha1-5esolFv4tlY+f4GJRflmqNKZfzk=",
-      "dev": true,
-      "requires": {
-        "regenerator-transform": "^0.14.2"
-      }
-    },
-    "@babel/plugin-transform-reserved-words": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.12.13.tgz",
-      "integrity": "sha1-fZmI1PBuD+aX6h2YAxiKoYtHJpU=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-runtime": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.14.2.tgz",
-      "integrity": "sha1-TiQ4m9aA3ZTqG4cUZdABEq6XRCU=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.13.12",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "babel-plugin-polyfill-corejs2": "^0.2.0",
-        "babel-plugin-polyfill-corejs3": "^0.2.0",
-        "babel-plugin-polyfill-regenerator": "^0.2.0",
-        "semver": "^6.3.0"
-      }
-    },
-    "@babel/plugin-transform-shorthand-properties": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.12.13.tgz?cache=0&sync_timestamp=1612314760117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.12.13.tgz",
-      "integrity": "sha1-23VXMrcMU51QTGOQ2c6Q/mSv960=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-spread": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.13.0.tgz?cache=0&sync_timestamp=1614034823666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.13.0.tgz",
-      "integrity": "sha1-hIh3EOJzwYFaznrkWfb0Kl0x1f0=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
-      }
-    },
-    "@babel/plugin-transform-sticky-regex": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314760921&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.12.13.tgz",
-      "integrity": "sha1-dg/9k2+s5z+GCuZG+4bugvPQbR8=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-template-literals": {
-      "version": "7.13.0",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.13.0.tgz",
-      "integrity": "sha1-o2BJEnl3rZRDje50Q1mNHO/fQJ0=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.13.0"
-      }
-    },
-    "@babel/plugin-transform-typeof-symbol": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.12.13.tgz?cache=0&sync_timestamp=1612314760046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-typeof-symbol%2Fdownload%2F%40babel%2Fplugin-transform-typeof-symbol-7.12.13.tgz",
-      "integrity": "sha1-eF3Weh8upXnZwr5yLejITLhfWn8=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-unicode-escapes": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.12.13.tgz",
-      "integrity": "sha1-hAztO4FtO1En3R0S3O3F3q0aXnQ=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/plugin-transform-unicode-regex": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.12.13.tgz?cache=0&sync_timestamp=1612314760208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.12.13.tgz",
-      "integrity": "sha1-tSUhaFgE4VWxIC6D/BiNNLtw9aw=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-create-regexp-features-plugin": "^7.12.13",
-        "@babel/helper-plugin-utils": "^7.12.13"
-      }
-    },
-    "@babel/preset-env": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/preset-env/download/@babel/preset-env-7.14.2.tgz?cache=0&sync_timestamp=1620839457830&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.14.2.tgz",
-      "integrity": "sha1-6AYSll2nNXnIStL5Y8I1nHFSTtU=",
-      "dev": true,
-      "requires": {
-        "@babel/compat-data": "^7.14.0",
-        "@babel/helper-compilation-targets": "^7.13.16",
-        "@babel/helper-plugin-utils": "^7.13.0",
-        "@babel/helper-validator-option": "^7.12.17",
-        "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12",
-        "@babel/plugin-proposal-async-generator-functions": "^7.14.2",
-        "@babel/plugin-proposal-class-properties": "^7.13.0",
-        "@babel/plugin-proposal-class-static-block": "^7.13.11",
-        "@babel/plugin-proposal-dynamic-import": "^7.14.2",
-        "@babel/plugin-proposal-export-namespace-from": "^7.14.2",
-        "@babel/plugin-proposal-json-strings": "^7.14.2",
-        "@babel/plugin-proposal-logical-assignment-operators": "^7.14.2",
-        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.2",
-        "@babel/plugin-proposal-numeric-separator": "^7.14.2",
-        "@babel/plugin-proposal-object-rest-spread": "^7.14.2",
-        "@babel/plugin-proposal-optional-catch-binding": "^7.14.2",
-        "@babel/plugin-proposal-optional-chaining": "^7.14.2",
-        "@babel/plugin-proposal-private-methods": "^7.13.0",
-        "@babel/plugin-proposal-private-property-in-object": "^7.14.0",
-        "@babel/plugin-proposal-unicode-property-regex": "^7.12.13",
-        "@babel/plugin-syntax-async-generators": "^7.8.4",
-        "@babel/plugin-syntax-class-properties": "^7.12.13",
-        "@babel/plugin-syntax-class-static-block": "^7.12.13",
-        "@babel/plugin-syntax-dynamic-import": "^7.8.3",
-        "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
-        "@babel/plugin-syntax-json-strings": "^7.8.3",
-        "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
-        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
-        "@babel/plugin-syntax-numeric-separator": "^7.10.4",
-        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
-        "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
-        "@babel/plugin-syntax-optional-chaining": "^7.8.3",
-        "@babel/plugin-syntax-private-property-in-object": "^7.14.0",
-        "@babel/plugin-syntax-top-level-await": "^7.12.13",
-        "@babel/plugin-transform-arrow-functions": "^7.13.0",
-        "@babel/plugin-transform-async-to-generator": "^7.13.0",
-        "@babel/plugin-transform-block-scoped-functions": "^7.12.13",
-        "@babel/plugin-transform-block-scoping": "^7.14.2",
-        "@babel/plugin-transform-classes": "^7.14.2",
-        "@babel/plugin-transform-computed-properties": "^7.13.0",
-        "@babel/plugin-transform-destructuring": "^7.13.17",
-        "@babel/plugin-transform-dotall-regex": "^7.12.13",
-        "@babel/plugin-transform-duplicate-keys": "^7.12.13",
-        "@babel/plugin-transform-exponentiation-operator": "^7.12.13",
-        "@babel/plugin-transform-for-of": "^7.13.0",
-        "@babel/plugin-transform-function-name": "^7.12.13",
-        "@babel/plugin-transform-literals": "^7.12.13",
-        "@babel/plugin-transform-member-expression-literals": "^7.12.13",
-        "@babel/plugin-transform-modules-amd": "^7.14.2",
-        "@babel/plugin-transform-modules-commonjs": "^7.14.0",
-        "@babel/plugin-transform-modules-systemjs": "^7.13.8",
-        "@babel/plugin-transform-modules-umd": "^7.14.0",
-        "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13",
-        "@babel/plugin-transform-new-target": "^7.12.13",
-        "@babel/plugin-transform-object-super": "^7.12.13",
-        "@babel/plugin-transform-parameters": "^7.14.2",
-        "@babel/plugin-transform-property-literals": "^7.12.13",
-        "@babel/plugin-transform-regenerator": "^7.13.15",
-        "@babel/plugin-transform-reserved-words": "^7.12.13",
-        "@babel/plugin-transform-shorthand-properties": "^7.12.13",
-        "@babel/plugin-transform-spread": "^7.13.0",
-        "@babel/plugin-transform-sticky-regex": "^7.12.13",
-        "@babel/plugin-transform-template-literals": "^7.13.0",
-        "@babel/plugin-transform-typeof-symbol": "^7.12.13",
-        "@babel/plugin-transform-unicode-escapes": "^7.12.13",
-        "@babel/plugin-transform-unicode-regex": "^7.12.13",
-        "@babel/preset-modules": "^0.1.4",
-        "@babel/types": "^7.14.2",
-        "babel-plugin-polyfill-corejs2": "^0.2.0",
-        "babel-plugin-polyfill-corejs3": "^0.2.0",
-        "babel-plugin-polyfill-regenerator": "^0.2.0",
-        "core-js-compat": "^3.9.0",
-        "semver": "^6.3.0"
-      }
-    },
-    "@babel/preset-modules": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.4.tgz?cache=0&sync_timestamp=1598549925898&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-modules%2Fdownload%2F%40babel%2Fpreset-modules-0.1.4.tgz",
-      "integrity": "sha1-Ni8raMZihClw/bXiVP/I/BwuQV4=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-plugin-utils": "^7.0.0",
-        "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
-        "@babel/plugin-transform-dotall-regex": "^7.4.4",
-        "@babel/types": "^7.4.4",
-        "esutils": "^2.0.2"
-      }
-    },
-    "@babel/runtime": {
-      "version": "7.14.0",
-      "resolved": "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.0.tgz?cache=0&sync_timestamp=1619727501090&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.14.0.tgz",
-      "integrity": "sha1-RnlLwgthLF915i3QceJN/ZXxy+Y=",
-      "requires": {
-        "regenerator-runtime": "^0.13.4"
-      }
-    },
-    "@babel/template": {
-      "version": "7.12.13",
-      "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.12.13.tgz",
-      "integrity": "sha1-UwJlvooliduzdSOETFvLVZR/syc=",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.12.13",
-        "@babel/parser": "^7.12.13",
-        "@babel/types": "^7.12.13"
-      }
-    },
-    "@babel/traverse": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/traverse/download/@babel/traverse-7.14.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.14.2.tgz",
-      "integrity": "sha1-kgGo2RJyOoMcJnnH678v4UFtdls=",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.12.13",
-        "@babel/generator": "^7.14.2",
-        "@babel/helper-function-name": "^7.14.2",
-        "@babel/helper-split-export-declaration": "^7.12.13",
-        "@babel/parser": "^7.14.2",
-        "@babel/types": "^7.14.2",
-        "debug": "^4.1.0",
-        "globals": "^11.1.0"
-      }
-    },
-    "@babel/types": {
-      "version": "7.14.2",
-      "resolved": "https://registry.nlark.com/@babel/types/download/@babel/types-7.14.2.tgz?cache=0&sync_timestamp=1620839476067&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.14.2.tgz",
-      "integrity": "sha1-QgiuADEH74oFfqgzPlbrZNL2osM=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-validator-identifier": "^7.14.0",
-        "to-fast-properties": "^2.0.0"
-      }
-    },
-    "@hapi/address": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1603524710662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz",
-      "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=",
-      "dev": true
-    },
-    "@hapi/bourne": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz?cache=0&sync_timestamp=1593915150444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fbourne%2Fdownload%2F%40hapi%2Fbourne-1.3.2.tgz",
-      "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=",
-      "dev": true
-    },
-    "@hapi/hoek": {
-      "version": "8.5.1",
-      "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz",
-      "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=",
-      "dev": true
-    },
-    "@hapi/joi": {
-      "version": "15.1.1",
-      "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1603524515155&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz",
-      "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=",
-      "dev": true,
-      "requires": {
-        "@hapi/address": "2.x.x",
-        "@hapi/bourne": "1.x.x",
-        "@hapi/hoek": "8.x.x",
-        "@hapi/topo": "3.x.x"
-      }
-    },
-    "@hapi/topo": {
-      "version": "3.1.6",
-      "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz?cache=0&sync_timestamp=1593916080558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz",
-      "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=",
-      "dev": true,
-      "requires": {
-        "@hapi/hoek": "^8.3.0"
-      }
-    },
-    "@intervolga/optimize-cssnano-plugin": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz",
-      "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=",
-      "dev": true,
-      "requires": {
-        "cssnano": "^4.0.0",
-        "cssnano-preset-default": "^4.0.0",
-        "postcss": "^7.0.0"
-      }
-    },
-    "@mrmlnc/readdir-enhanced": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz",
-      "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=",
-      "dev": true,
-      "requires": {
-        "call-me-maybe": "^1.0.1",
-        "glob-to-regexp": "^0.3.0"
-      }
-    },
-    "@nodelib/fs.scandir": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npm.taobao.org/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.4.tgz?cache=0&sync_timestamp=1609074618762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.4.tgz",
-      "integrity": "sha1-1LNUml213iaD4MEHGrTxQJBLv2k=",
-      "dev": true,
-      "requires": {
-        "@nodelib/fs.stat": "2.0.4",
-        "run-parallel": "^1.1.9"
-      },
-      "dependencies": {
-        "@nodelib/fs.stat": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.4.tgz?cache=0&sync_timestamp=1609074554588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.4.tgz",
-          "integrity": "sha1-o/LdYbq0O424+hCKEhz//kxnZlU=",
-          "dev": true
-        }
-      }
-    },
-    "@nodelib/fs.stat": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz?cache=0&sync_timestamp=1609074554588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-1.1.3.tgz",
-      "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=",
-      "dev": true
-    },
-    "@nodelib/fs.walk": {
-      "version": "1.2.6",
-      "resolved": "https://registry.npm.taobao.org/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.6.tgz?cache=0&sync_timestamp=1609077165961&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.6.tgz",
-      "integrity": "sha1-zOk5azCqWv6eN1Zgj1gxrctT0GM=",
-      "dev": true,
-      "requires": {
-        "@nodelib/fs.scandir": "2.1.4",
-        "fastq": "^1.6.0"
-      }
-    },
-    "@riophae/vue-treeselect": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npm.taobao.org/@riophae/vue-treeselect/download/@riophae/vue-treeselect-0.4.0.tgz",
-      "integrity": "sha1-C67Vp5TP/FgLY1kfNcEl5RwN8kE=",
-      "requires": {
-        "@babel/runtime": "^7.3.1",
-        "babel-helper-vue-jsx-merge-props": "^2.0.3",
-        "easings-css": "^1.0.0",
-        "fuzzysearch": "^1.0.3",
-        "is-promise": "^2.1.0",
-        "lodash": "^4.0.0",
-        "material-colors": "^1.2.6",
-        "watch-size": "^2.0.0"
-      }
-    },
-    "@samverschueren/stream-to-observable": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npm.taobao.org/@samverschueren/stream-to-observable/download/@samverschueren/stream-to-observable-0.3.1.tgz?cache=0&sync_timestamp=1596974175687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40samverschueren%2Fstream-to-observable%2Fdownload%2F%40samverschueren%2Fstream-to-observable-0.3.1.tgz",
-      "integrity": "sha1-ohEXsZ7pvnDDeewYd1N+8uHGMwE=",
-      "dev": true,
-      "requires": {
-        "any-observable": "^0.3.0"
-      }
-    },
-    "@soda/friendly-errors-webpack-plugin": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.8.0.tgz?cache=0&sync_timestamp=1607927399532&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40soda%2Ffriendly-errors-webpack-plugin%2Fdownload%2F%40soda%2Ffriendly-errors-webpack-plugin-1.8.0.tgz",
-      "integrity": "sha1-hHUdgqkwGdXJLAzw5FrFkIfNIkA=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.2",
-        "error-stack-parser": "^2.0.2",
-        "string-width": "^2.0.0",
-        "strip-ansi": "^5"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz",
-          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          },
-          "dependencies": {
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-          "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^4.1.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "4.1.0",
-              "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz",
-              "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "@soda/get-current-script": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/@soda/get-current-script/download/@soda/get-current-script-1.0.2.tgz",
-      "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=",
-      "dev": true
-    },
-    "@types/anymatch": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz?cache=0&sync_timestamp=1613378060592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fanymatch%2Fdownload%2F%40types%2Fanymatch-1.3.1.tgz",
-      "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=",
-      "dev": true
-    },
-    "@types/body-parser": {
-      "version": "1.19.0",
-      "resolved": "https://registry.npm.taobao.org/@types/body-parser/download/@types/body-parser-1.19.0.tgz?cache=0&sync_timestamp=1613378063000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fbody-parser%2Fdownload%2F%40types%2Fbody-parser-1.19.0.tgz",
-      "integrity": "sha1-BoWzxH6zAG/+0RfN1VFkth+AU48=",
-      "dev": true,
-      "requires": {
-        "@types/connect": "*",
-        "@types/node": "*"
-      }
-    },
-    "@types/connect": {
-      "version": "3.4.34",
-      "resolved": "https://registry.nlark.com/@types/connect/download/@types/connect-3.4.34.tgz",
-      "integrity": "sha1-FwpAIjptZmAG2TyhKK8r6x2bGQE=",
-      "dev": true,
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/connect-history-api-fallback": {
-      "version": "1.3.4",
-      "resolved": "https://registry.npm.taobao.org/@types/connect-history-api-fallback/download/@types/connect-history-api-fallback-1.3.4.tgz?cache=0&sync_timestamp=1615910664204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fconnect-history-api-fallback%2Fdownload%2F%40types%2Fconnect-history-api-fallback-1.3.4.tgz",
-      "integrity": "sha1-jA8Obl2CUraZ9aZi9Rvfgv2di7g=",
-      "dev": true,
-      "requires": {
-        "@types/express-serve-static-core": "*",
-        "@types/node": "*"
-      }
-    },
-    "@types/express": {
-      "version": "4.17.11",
-      "resolved": "https://registry.nlark.com/@types/express/download/@types/express-4.17.11.tgz",
-      "integrity": "sha1-3r48qm+OX82pa0e9VOL0DE7llUU=",
-      "dev": true,
-      "requires": {
-        "@types/body-parser": "*",
-        "@types/express-serve-static-core": "^4.17.18",
-        "@types/qs": "*",
-        "@types/serve-static": "*"
-      }
-    },
-    "@types/express-serve-static-core": {
-      "version": "4.17.19",
-      "resolved": "https://registry.npm.taobao.org/@types/express-serve-static-core/download/@types/express-serve-static-core-4.17.19.tgz?cache=0&sync_timestamp=1615830555880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fexpress-serve-static-core%2Fdownload%2F%40types%2Fexpress-serve-static-core-4.17.19.tgz",
-      "integrity": "sha1-AKz8FjLnKaysTxUw6eFvbdFQih0=",
-      "dev": true,
-      "requires": {
-        "@types/node": "*",
-        "@types/qs": "*",
-        "@types/range-parser": "*"
-      }
-    },
-    "@types/glob": {
-      "version": "7.1.3",
-      "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fglob%2Fdownload%2F%40types%2Fglob-7.1.3.tgz",
-      "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=",
-      "dev": true,
-      "requires": {
-        "@types/minimatch": "*",
-        "@types/node": "*"
-      }
-    },
-    "@types/http-proxy": {
-      "version": "1.17.6",
-      "resolved": "https://registry.nlark.com/@types/http-proxy/download/@types/http-proxy-1.17.6.tgz?cache=0&sync_timestamp=1621034446420&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fhttp-proxy%2Fdownload%2F%40types%2Fhttp-proxy-1.17.6.tgz",
-      "integrity": "sha1-Ytw/reIn1qwoYsjxnuDanan9hhY=",
-      "dev": true,
-      "requires": {
-        "@types/node": "*"
-      }
-    },
-    "@types/json-schema": {
-      "version": "7.0.7",
-      "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.7.tgz?cache=0&sync_timestamp=1613378919536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.7.tgz",
-      "integrity": "sha1-mKmTUWyFnrDVxMjwmDF6nqaNua0=",
-      "dev": true
-    },
-    "@types/json5": {
-      "version": "0.0.29",
-      "resolved": "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz",
-      "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
-      "dev": true
-    },
-    "@types/mime": {
-      "version": "1.3.2",
-      "resolved": "https://registry.nlark.com/@types/mime/download/@types/mime-1.3.2.tgz?cache=0&sync_timestamp=1618846739993&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fmime%2Fdownload%2F%40types%2Fmime-1.3.2.tgz",
-      "integrity": "sha1-k+Jb+e51/g/YC1lLxP6w6GIRG1o=",
-      "dev": true
-    },
-    "@types/minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.4.tgz",
-      "integrity": "sha1-8Owl2/Lw5LGGRzE6wDETTKWySyE=",
-      "dev": true
-    },
-    "@types/minimist": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/@types/minimist/download/@types/minimist-1.2.1.tgz?cache=0&sync_timestamp=1613379261405&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimist%2Fdownload%2F%40types%2Fminimist-1.2.1.tgz",
-      "integrity": "sha1-KD9mn/dte4Jg34q3pCYsyD2YglY=",
-      "dev": true
-    },
-    "@types/node": {
-      "version": "15.3.0",
-      "resolved": "https://registry.nlark.com/@types/node/download/@types/node-15.3.0.tgz",
-      "integrity": "sha1-1v7X1rxoVDBto96hr5+HSwB4PiY=",
-      "dev": true
-    },
-    "@types/normalize-package-data": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz?cache=0&sync_timestamp=1613379350842&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnormalize-package-data%2Fdownload%2F%40types%2Fnormalize-package-data-2.4.0.tgz",
-      "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=",
-      "dev": true
-    },
-    "@types/q": {
-      "version": "1.5.4",
-      "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz",
-      "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=",
-      "dev": true
-    },
-    "@types/qs": {
-      "version": "6.9.6",
-      "resolved": "https://registry.npm.taobao.org/@types/qs/download/@types/qs-6.9.6.tgz",
-      "integrity": "sha1-35w8izGiR+wxXmmWVmvjFx30s7E=",
-      "dev": true
-    },
-    "@types/range-parser": {
-      "version": "1.2.3",
-      "resolved": "https://registry.nlark.com/@types/range-parser/download/@types/range-parser-1.2.3.tgz",
-      "integrity": "sha1-fuMwunyq+5gJC+zoal7kQRWQTCw=",
-      "dev": true
-    },
-    "@types/serve-static": {
-      "version": "1.13.9",
-      "resolved": "https://registry.nlark.com/@types/serve-static/download/@types/serve-static-1.13.9.tgz",
-      "integrity": "sha1-qs8oqFoF7imhH7fD6tk1rFbzPk4=",
-      "dev": true,
-      "requires": {
-        "@types/mime": "^1",
-        "@types/node": "*"
-      }
-    },
-    "@types/source-list-map": {
-      "version": "0.1.2",
-      "resolved": "https://registry.nlark.com/@types/source-list-map/download/@types/source-list-map-0.1.2.tgz",
-      "integrity": "sha1-AHiDYGP/rxdBI0m7o2QIfgrALsk=",
-      "dev": true
-    },
-    "@types/tapable": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.7.tgz?cache=0&sync_timestamp=1617127562296&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Ftapable%2Fdownload%2F%40types%2Ftapable-1.0.7.tgz",
-      "integrity": "sha1-VFFYNC+Uno/Tv9gTIklx7N3D+sQ=",
-      "dev": true
-    },
-    "@types/uglify-js": {
-      "version": "3.13.0",
-      "resolved": "https://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.13.0.tgz",
-      "integrity": "sha1-HK2N8fsLFDxaugjeVxLqnR/3ESQ=",
-      "dev": true,
-      "requires": {
-        "source-map": "^0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "@types/webpack": {
-      "version": "4.41.28",
-      "resolved": "https://registry.nlark.com/@types/webpack/download/@types/webpack-4.41.28.tgz",
-      "integrity": "sha1-AGmiFZt61Ng9C1gBlCwX1UEziXs=",
-      "dev": true,
-      "requires": {
-        "@types/anymatch": "*",
-        "@types/node": "*",
-        "@types/tapable": "^1",
-        "@types/uglify-js": "*",
-        "@types/webpack-sources": "*",
-        "source-map": "^0.6.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "@types/webpack-dev-server": {
-      "version": "3.11.4",
-      "resolved": "https://registry.nlark.com/@types/webpack-dev-server/download/@types/webpack-dev-server-3.11.4.tgz?cache=0&sync_timestamp=1620426497880&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fwebpack-dev-server%2Fdownload%2F%40types%2Fwebpack-dev-server-3.11.4.tgz",
-      "integrity": "sha1-kNR91mC2ltQJQxq4wen6NhUQOgc=",
-      "dev": true,
-      "requires": {
-        "@types/connect-history-api-fallback": "*",
-        "@types/express": "*",
-        "@types/serve-static": "*",
-        "@types/webpack": "^4",
-        "http-proxy-middleware": "^1.0.0"
-      }
-    },
-    "@types/webpack-sources": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/@types/webpack-sources/download/@types/webpack-sources-2.1.0.tgz?cache=0&sync_timestamp=1613384741414&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fwebpack-sources%2Fdownload%2F%40types%2Fwebpack-sources-2.1.0.tgz",
-      "integrity": "sha1-iIKwvWLR4M5i8YPQ0Bty5ugujBA=",
-      "dev": true,
-      "requires": {
-        "@types/node": "*",
-        "@types/source-list-map": "*",
-        "source-map": "^0.7.3"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.7.3",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.7.3.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.7.3.tgz",
-          "integrity": "sha1-UwL4FpAxc1ImVECS5kmB91F1A4M=",
-          "dev": true
-        }
-      }
-    },
-    "@vue/babel-helper-vue-jsx-merge-props": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz?cache=0&sync_timestamp=1602851386916&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.2.1.tgz",
-      "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE=",
-      "dev": true
-    },
-    "@vue/babel-helper-vue-transform-on": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-transform-on/download/@vue/babel-helper-vue-transform-on-1.0.2.tgz?cache=0&sync_timestamp=1610812436327&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-transform-on%2Fdownload%2F%40vue%2Fbabel-helper-vue-transform-on-1.0.2.tgz",
-      "integrity": "sha1-m5xpHNBvyFUiGiR1w8yDHXdLx9w=",
-      "dev": true
-    },
-    "@vue/babel-plugin-jsx": {
-      "version": "1.0.6",
-      "resolved": "https://registry.nlark.com/@vue/babel-plugin-jsx/download/@vue/babel-plugin-jsx-1.0.6.tgz",
-      "integrity": "sha1-GEvzVBq279vlB5q4sgwZ4q8QC/s=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.0.0",
-        "@babel/plugin-syntax-jsx": "^7.0.0",
-        "@babel/template": "^7.0.0",
-        "@babel/traverse": "^7.0.0",
-        "@babel/types": "^7.0.0",
-        "@vue/babel-helper-vue-transform-on": "^1.0.2",
-        "camelcase": "^6.0.0",
-        "html-tags": "^3.1.0",
-        "svg-tags": "^1.0.0"
-      }
-    },
-    "@vue/babel-plugin-transform-vue-jsx": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851387265&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz",
-      "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-module-imports": "^7.0.0",
-        "@babel/plugin-syntax-jsx": "^7.2.0",
-        "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
-        "html-tags": "^2.0.0",
-        "lodash.kebabcase": "^4.1.1",
-        "svg-tags": "^1.0.0"
-      },
-      "dependencies": {
-        "html-tags": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz",
-          "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
-          "dev": true
-        }
-      }
-    },
-    "@vue/babel-preset-app": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/babel-preset-app/download/@vue/babel-preset-app-4.5.13.tgz?cache=0&sync_timestamp=1620982846300&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fbabel-preset-app%2Fdownload%2F%40vue%2Fbabel-preset-app-4.5.13.tgz",
-      "integrity": "sha1-y0dTIeTHP38RDawppIwqnLgK/rY=",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.11.0",
-        "@babel/helper-compilation-targets": "^7.9.6",
-        "@babel/helper-module-imports": "^7.8.3",
-        "@babel/plugin-proposal-class-properties": "^7.8.3",
-        "@babel/plugin-proposal-decorators": "^7.8.3",
-        "@babel/plugin-syntax-dynamic-import": "^7.8.3",
-        "@babel/plugin-syntax-jsx": "^7.8.3",
-        "@babel/plugin-transform-runtime": "^7.11.0",
-        "@babel/preset-env": "^7.11.0",
-        "@babel/runtime": "^7.11.0",
-        "@vue/babel-plugin-jsx": "^1.0.3",
-        "@vue/babel-preset-jsx": "^1.2.4",
-        "babel-plugin-dynamic-import-node": "^2.3.3",
-        "core-js": "^3.6.5",
-        "core-js-compat": "^3.6.5",
-        "semver": "^6.1.0"
-      }
-    },
-    "@vue/babel-preset-jsx": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz?cache=0&sync_timestamp=1603806993853&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-preset-jsx%2Fdownload%2F%40vue%2Fbabel-preset-jsx-1.2.4.tgz",
-      "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=",
-      "dev": true,
-      "requires": {
-        "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
-        "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
-        "@vue/babel-sugar-composition-api-inject-h": "^1.2.1",
-        "@vue/babel-sugar-composition-api-render-instance": "^1.2.4",
-        "@vue/babel-sugar-functional-vue": "^1.2.2",
-        "@vue/babel-sugar-inject-h": "^1.2.2",
-        "@vue/babel-sugar-v-model": "^1.2.3",
-        "@vue/babel-sugar-v-on": "^1.2.3"
-      }
-    },
-    "@vue/babel-sugar-composition-api-inject-h": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz?cache=0&sync_timestamp=1602851381964&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-inject-h-1.2.1.tgz",
-      "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-syntax-jsx": "^7.2.0"
-      }
-    },
-    "@vue/babel-sugar-composition-api-render-instance": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz?cache=0&sync_timestamp=1603806995958&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-composition-api-render-instance%2Fdownload%2F%40vue%2Fbabel-sugar-composition-api-render-instance-1.2.4.tgz",
-      "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-syntax-jsx": "^7.2.0"
-      }
-    },
-    "@vue/babel-sugar-functional-vue": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz?cache=0&sync_timestamp=1602929516892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-functional-vue%2Fdownload%2F%40vue%2Fbabel-sugar-functional-vue-1.2.2.tgz",
-      "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-syntax-jsx": "^7.2.0"
-      }
-    },
-    "@vue/babel-sugar-inject-h": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz?cache=0&sync_timestamp=1602929516704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-inject-h%2Fdownload%2F%40vue%2Fbabel-sugar-inject-h-1.2.2.tgz",
-      "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-syntax-jsx": "^7.2.0"
-      }
-    },
-    "@vue/babel-sugar-v-model": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz?cache=0&sync_timestamp=1603184347642&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-sugar-v-model%2Fdownload%2F%40vue%2Fbabel-sugar-v-model-1.2.3.tgz",
-      "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-syntax-jsx": "^7.2.0",
-        "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
-        "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
-        "camelcase": "^5.0.0",
-        "html-tags": "^2.0.0",
-        "svg-tags": "^1.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
-          "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
-          "dev": true
-        },
-        "html-tags": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz",
-          "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
-          "dev": true
-        }
-      }
-    },
-    "@vue/babel-sugar-v-on": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz",
-      "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=",
-      "dev": true,
-      "requires": {
-        "@babel/plugin-syntax-jsx": "^7.2.0",
-        "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
-        "camelcase": "^5.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
-          "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
-          "dev": true
-        }
-      }
-    },
-    "@vue/cli-overlay": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-overlay/download/@vue/cli-overlay-4.5.13.tgz",
-      "integrity": "sha1-Tx/SFhvo9p1suoB58/DX3E3uR6c=",
-      "dev": true
-    },
-    "@vue/cli-plugin-babel": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-4.5.13.tgz?cache=0&sync_timestamp=1620982924315&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-plugin-babel%2Fdownload%2F%40vue%2Fcli-plugin-babel-4.5.13.tgz",
-      "integrity": "sha1-qJxILtzE6h0TVkXOxQKn9f1MMOc=",
-      "dev": true,
-      "requires": {
-        "@babel/core": "^7.11.0",
-        "@vue/babel-preset-app": "^4.5.13",
-        "@vue/cli-shared-utils": "^4.5.13",
-        "babel-loader": "^8.1.0",
-        "cache-loader": "^4.1.0",
-        "thread-loader": "^2.1.3",
-        "webpack": "^4.0.0"
-      }
-    },
-    "@vue/cli-plugin-eslint": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-4.5.13.tgz",
-      "integrity": "sha1-i68i0NltdnIMdQZka5b09iwFvfo=",
-      "dev": true,
-      "requires": {
-        "@vue/cli-shared-utils": "^4.5.13",
-        "eslint-loader": "^2.2.1",
-        "globby": "^9.2.0",
-        "inquirer": "^7.1.0",
-        "webpack": "^4.0.0",
-        "yorkie": "^2.0.0"
-      }
-    },
-    "@vue/cli-plugin-router": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-plugin-router/download/@vue/cli-plugin-router-4.5.13.tgz",
-      "integrity": "sha1-C2fIiYor8TKUGRmiouXzqsvZ/74=",
-      "dev": true,
-      "requires": {
-        "@vue/cli-shared-utils": "^4.5.13"
-      }
-    },
-    "@vue/cli-plugin-vuex": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-plugin-vuex/download/@vue/cli-plugin-vuex-4.5.13.tgz",
-      "integrity": "sha1-mGRti8HmnPbGpsui/tPqzgNWw2A=",
-      "dev": true
-    },
-    "@vue/cli-service": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-service/download/@vue/cli-service-4.5.13.tgz?cache=0&sync_timestamp=1620982846498&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-service%2Fdownload%2F%40vue%2Fcli-service-4.5.13.tgz",
-      "integrity": "sha1-oJ5oSoAWhLbiTlQUrTBlCXDuye0=",
-      "dev": true,
-      "requires": {
-        "@intervolga/optimize-cssnano-plugin": "^1.0.5",
-        "@soda/friendly-errors-webpack-plugin": "^1.7.1",
-        "@soda/get-current-script": "^1.0.0",
-        "@types/minimist": "^1.2.0",
-        "@types/webpack": "^4.0.0",
-        "@types/webpack-dev-server": "^3.11.0",
-        "@vue/cli-overlay": "^4.5.13",
-        "@vue/cli-plugin-router": "^4.5.13",
-        "@vue/cli-plugin-vuex": "^4.5.13",
-        "@vue/cli-shared-utils": "^4.5.13",
-        "@vue/component-compiler-utils": "^3.1.2",
-        "@vue/preload-webpack-plugin": "^1.1.0",
-        "@vue/web-component-wrapper": "^1.2.0",
-        "acorn": "^7.4.0",
-        "acorn-walk": "^7.1.1",
-        "address": "^1.1.2",
-        "autoprefixer": "^9.8.6",
-        "browserslist": "^4.12.0",
-        "cache-loader": "^4.1.0",
-        "case-sensitive-paths-webpack-plugin": "^2.3.0",
-        "cli-highlight": "^2.1.4",
-        "clipboardy": "^2.3.0",
-        "cliui": "^6.0.0",
-        "copy-webpack-plugin": "^5.1.1",
-        "css-loader": "^3.5.3",
-        "cssnano": "^4.1.10",
-        "debug": "^4.1.1",
-        "default-gateway": "^5.0.5",
-        "dotenv": "^8.2.0",
-        "dotenv-expand": "^5.1.0",
-        "file-loader": "^4.2.0",
-        "fs-extra": "^7.0.1",
-        "globby": "^9.2.0",
-        "hash-sum": "^2.0.0",
-        "html-webpack-plugin": "^3.2.0",
-        "launch-editor-middleware": "^2.2.1",
-        "lodash.defaultsdeep": "^4.6.1",
-        "lodash.mapvalues": "^4.6.0",
-        "lodash.transform": "^4.6.0",
-        "mini-css-extract-plugin": "^0.9.0",
-        "minimist": "^1.2.5",
-        "pnp-webpack-plugin": "^1.6.4",
-        "portfinder": "^1.0.26",
-        "postcss-loader": "^3.0.0",
-        "ssri": "^8.0.1",
-        "terser-webpack-plugin": "^1.4.4",
-        "thread-loader": "^2.1.3",
-        "url-loader": "^2.2.0",
-        "vue-loader": "^15.9.2",
-        "vue-loader-v16": "npm:vue-loader@^16.1.0",
-        "vue-style-loader": "^4.1.2",
-        "webpack": "^4.0.0",
-        "webpack-bundle-analyzer": "^3.8.0",
-        "webpack-chain": "^6.4.0",
-        "webpack-dev-server": "^3.11.0",
-        "webpack-merge": "^4.2.2"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "7.4.1",
-          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1620134123724&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
-          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
-          "dev": true
-        },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
-          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
-        "ssri": {
-          "version": "8.0.1",
-          "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
-          "integrity": "sha1-Y45OQ54v+9LNKJd21cpFfE9Roq8=",
-          "dev": true,
-          "requires": {
-            "minipass": "^3.1.1"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        },
-        "vue-loader-v16": {
-          "version": "npm:vue-loader@16.8.3",
-          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
-          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "chalk": "^4.1.0",
-            "hash-sum": "^2.0.0",
-            "loader-utils": "^2.0.0"
-          }
-        }
-      }
-    },
-    "@vue/cli-shared-utils": {
-      "version": "4.5.13",
-      "resolved": "https://registry.nlark.com/@vue/cli-shared-utils/download/@vue/cli-shared-utils-4.5.13.tgz?cache=0&sync_timestamp=1620982846134&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40vue%2Fcli-shared-utils%2Fdownload%2F%40vue%2Fcli-shared-utils-4.5.13.tgz",
-      "integrity": "sha1-rNQPMbR5DxY0KSvapfypXcHg/1A=",
-      "dev": true,
-      "requires": {
-        "@hapi/joi": "^15.0.1",
-        "chalk": "^2.4.2",
-        "execa": "^1.0.0",
-        "launch-editor": "^2.2.1",
-        "lru-cache": "^5.1.1",
-        "node-ipc": "^9.1.1",
-        "open": "^6.3.0",
-        "ora": "^3.4.0",
-        "read-pkg": "^5.1.1",
-        "request": "^2.88.2",
-        "semver": "^6.1.0",
-        "strip-ansi": "^6.0.0"
-      }
-    },
-    "@vue/component-compiler-utils": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.2.0.tgz",
-      "integrity": "sha1-j4UYLO7Sjps8dTE95mn4MWbRHl0=",
-      "dev": true,
-      "requires": {
-        "consolidate": "^0.15.1",
-        "hash-sum": "^1.0.2",
-        "lru-cache": "^4.1.2",
-        "merge-source-map": "^1.1.0",
-        "postcss": "^7.0.14",
-        "postcss-selector-parser": "^6.0.2",
-        "prettier": "^1.18.2",
-        "source-map": "~0.6.1",
-        "vue-template-es2015-compiler": "^1.9.0"
-      },
-      "dependencies": {
-        "hash-sum": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
-          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
-          "dev": true
-        },
-        "lru-cache": {
-          "version": "4.1.5",
-          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427582110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz",
-          "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
-          "dev": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          }
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        },
-        "yallist": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
-          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
-          "dev": true
-        }
-      }
-    },
-    "@vue/eslint-config-standard": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npm.taobao.org/@vue/eslint-config-standard/download/@vue/eslint-config-standard-5.1.2.tgz?cache=0&sync_timestamp=1607330340331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Feslint-config-standard%2Fdownload%2F%40vue%2Feslint-config-standard-5.1.2.tgz",
-      "integrity": "sha1-xdVa+JSjriO2Wxr0pCV3esAXC0I=",
-      "dev": true,
-      "requires": {
-        "eslint-config-standard": "^14.1.0",
-        "eslint-import-resolver-node": "^0.3.3",
-        "eslint-import-resolver-webpack": "^0.12.1"
-      }
-    },
-    "@vue/preload-webpack-plugin": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fpreload-webpack-plugin%2Fdownload%2F%40vue%2Fpreload-webpack-plugin-1.1.2.tgz",
-      "integrity": "sha1-zrkktOyzucQ4ccekKaAvhCPmIas=",
-      "dev": true
-    },
-    "@vue/web-component-wrapper": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.3.0.tgz",
-      "integrity": "sha1-trQKdiVCnSvXwigd26YB7QXcfxo=",
-      "dev": true
-    },
-    "@webassemblyjs/ast": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&sync_timestamp=1610041484025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz",
-      "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/helper-module-context": "1.9.0",
-        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
-        "@webassemblyjs/wast-parser": "1.9.0"
-      }
-    },
-    "@webassemblyjs/floating-point-hex-parser": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz?cache=0&sync_timestamp=1610041494828&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz",
-      "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=",
-      "dev": true
-    },
-    "@webassemblyjs/helper-api-error": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz",
-      "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=",
-      "dev": true
-    },
-    "@webassemblyjs/helper-buffer": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz",
-      "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=",
-      "dev": true
-    },
-    "@webassemblyjs/helper-code-frame": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz?cache=0&sync_timestamp=1610041493871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz",
-      "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/wast-printer": "1.9.0"
-      }
-    },
-    "@webassemblyjs/helper-fsm": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1610041181722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz",
-      "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=",
-      "dev": true
-    },
-    "@webassemblyjs/helper-module-context": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz",
-      "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0"
-      }
-    },
-    "@webassemblyjs/helper-wasm-bytecode": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz",
-      "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=",
-      "dev": true
-    },
-    "@webassemblyjs/helper-wasm-section": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&sync_timestamp=1610041488989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz",
-      "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/helper-buffer": "1.9.0",
-        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
-        "@webassemblyjs/wasm-gen": "1.9.0"
-      }
-    },
-    "@webassemblyjs/ieee754": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz",
-      "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=",
-      "dev": true,
-      "requires": {
-        "@xtuc/ieee754": "^1.2.0"
-      }
-    },
-    "@webassemblyjs/leb128": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz",
-      "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=",
-      "dev": true,
-      "requires": {
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "@webassemblyjs/utf8": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz",
-      "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=",
-      "dev": true
-    },
-    "@webassemblyjs/wasm-edit": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&sync_timestamp=1610041485419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz",
-      "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/helper-buffer": "1.9.0",
-        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
-        "@webassemblyjs/helper-wasm-section": "1.9.0",
-        "@webassemblyjs/wasm-gen": "1.9.0",
-        "@webassemblyjs/wasm-opt": "1.9.0",
-        "@webassemblyjs/wasm-parser": "1.9.0",
-        "@webassemblyjs/wast-printer": "1.9.0"
-      }
-    },
-    "@webassemblyjs/wasm-gen": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&sync_timestamp=1610041488584&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz",
-      "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
-        "@webassemblyjs/ieee754": "1.9.0",
-        "@webassemblyjs/leb128": "1.9.0",
-        "@webassemblyjs/utf8": "1.9.0"
-      }
-    },
-    "@webassemblyjs/wasm-opt": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&sync_timestamp=1610041488856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz",
-      "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/helper-buffer": "1.9.0",
-        "@webassemblyjs/wasm-gen": "1.9.0",
-        "@webassemblyjs/wasm-parser": "1.9.0"
-      }
-    },
-    "@webassemblyjs/wasm-parser": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&sync_timestamp=1610041484395&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz",
-      "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/helper-api-error": "1.9.0",
-        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
-        "@webassemblyjs/ieee754": "1.9.0",
-        "@webassemblyjs/leb128": "1.9.0",
-        "@webassemblyjs/utf8": "1.9.0"
-      }
-    },
-    "@webassemblyjs/wast-parser": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&sync_timestamp=1610041489596&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz",
-      "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/floating-point-hex-parser": "1.9.0",
-        "@webassemblyjs/helper-api-error": "1.9.0",
-        "@webassemblyjs/helper-code-frame": "1.9.0",
-        "@webassemblyjs/helper-fsm": "1.9.0",
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "@webassemblyjs/wast-printer": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz?cache=0&sync_timestamp=1610041488066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz",
-      "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/wast-parser": "1.9.0",
-        "@xtuc/long": "4.2.2"
-      }
-    },
-    "@xtuc/ieee754": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz",
-      "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=",
-      "dev": true
-    },
-    "@xtuc/long": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz",
-      "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=",
-      "dev": true
-    },
-    "abbrev": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz",
-      "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=",
-      "dev": true
-    },
-    "accepts": {
-      "version": "1.3.7",
-      "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz",
-      "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=",
-      "dev": true,
-      "requires": {
-        "mime-types": "~2.1.24",
-        "negotiator": "0.6.2"
-      }
-    },
-    "acorn": {
-      "version": "6.4.2",
-      "resolved": "https://registry.nlark.com/acorn/download/acorn-6.4.2.tgz?cache=0&sync_timestamp=1620134123724&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-6.4.2.tgz",
-      "integrity": "sha1-NYZv1xBSjpLeEM8GAWSY5H454eY=",
-      "dev": true
-    },
-    "acorn-jsx": {
-      "version": "5.3.1",
-      "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.3.1.tgz?cache=0&sync_timestamp=1599499155970&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.3.1.tgz",
-      "integrity": "sha1-/IZh4Rt6wVOcR9v+oucrOvNNJns=",
-      "dev": true
-    },
-    "acorn-walk": {
-      "version": "7.2.0",
-      "resolved": "https://registry.nlark.com/acorn-walk/download/acorn-walk-7.2.0.tgz",
-      "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=",
-      "dev": true
-    },
-    "address": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz",
-      "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=",
-      "dev": true
-    },
-    "aggregate-error": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.1.0.tgz?cache=0&sync_timestamp=1618681242464&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.1.0.tgz",
-      "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=",
-      "dev": true,
-      "requires": {
-        "clean-stack": "^2.0.0",
-        "indent-string": "^4.0.0"
-      }
-    },
-    "ajv": {
-      "version": "6.12.6",
-      "resolved": "https://registry.nlark.com/ajv/download/ajv-6.12.6.tgz?cache=0&sync_timestamp=1621023838921&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fajv%2Fdownload%2Fajv-6.12.6.tgz",
-      "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
-      "dev": true,
-      "requires": {
-        "fast-deep-equal": "^3.1.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      }
-    },
-    "ajv-errors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz",
-      "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=",
-      "dev": true
-    },
-    "ajv-keywords": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.2.tgz?cache=0&sync_timestamp=1616882441894&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.2.tgz",
-      "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=",
-      "dev": true
-    },
-    "alphanum-sort": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz",
-      "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
-      "dev": true
-    },
-    "amdefine": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz",
-      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
-      "dev": true
-    },
-    "ansi-colors": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz",
-      "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=",
-      "dev": true
-    },
-    "ansi-escapes": {
-      "version": "4.3.2",
-      "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.2.tgz",
-      "integrity": "sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=",
-      "dev": true,
-      "requires": {
-        "type-fest": "^0.21.3"
-      },
-      "dependencies": {
-        "type-fest": {
-          "version": "0.21.3",
-          "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.21.3.tgz",
-          "integrity": "sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=",
-          "dev": true
-        }
-      }
-    },
-    "ansi-html": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz",
-      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
-      "dev": true
-    },
-    "ansi-regex": {
-      "version": "4.1.0",
-      "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz",
-      "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
-      "dev": true
-    },
-    "ansi-styles": {
-      "version": "3.2.1",
-      "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
-      "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
-      "dev": true,
-      "requires": {
-        "color-convert": "^1.9.0"
-      }
-    },
-    "any-observable": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npm.taobao.org/any-observable/download/any-observable-0.3.0.tgz",
-      "integrity": "sha1-r5M0deWAamfQ198JDdXovvZdEZs=",
-      "dev": true
-    },
-    "any-promise": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz",
-      "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=",
-      "dev": true
-    },
-    "anymatch": {
-      "version": "3.1.2",
-      "resolved": "https://registry.nlark.com/anymatch/download/anymatch-3.1.2.tgz",
-      "integrity": "sha1-wFV8CWrzLxBhmPT04qODU343hxY=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      }
-    },
-    "aproba": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz",
-      "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
-      "dev": true
-    },
-    "arch": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.2.0.tgz",
-      "integrity": "sha1-G8R4GPMFdk8jqzMGsL/AhsWinRE=",
-      "dev": true
-    },
-    "are-we-there-yet": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz",
-      "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=",
-      "dev": true,
-      "requires": {
-        "delegates": "^1.0.0",
-        "readable-stream": "^2.0.6"
-      }
-    },
-    "argparse": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz?cache=0&sync_timestamp=1598649734444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fargparse%2Fdownload%2Fargparse-1.0.10.tgz",
-      "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=",
-      "dev": true,
-      "requires": {
-        "sprintf-js": "~1.0.2"
-      }
-    },
-    "arr-diff": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz",
-      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
-      "dev": true
-    },
-    "arr-flatten": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz",
-      "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=",
-      "dev": true
-    },
-    "arr-union": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz",
-      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
-      "dev": true
-    },
-    "array-find": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/array-find/download/array-find-1.0.0.tgz",
-      "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=",
-      "dev": true
-    },
-    "array-find-index": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz",
-      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
-      "dev": true
-    },
-    "array-flatten": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz",
-      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
-      "dev": true
-    },
-    "array-includes": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.3.tgz?cache=0&sync_timestamp=1613858037848&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-includes%2Fdownload%2Farray-includes-3.1.3.tgz",
-      "integrity": "sha1-x/YZs4KtKvr1Mmzd/cCvxhr3aQo=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.18.0-next.2",
-        "get-intrinsic": "^1.1.1",
-        "is-string": "^1.0.5"
-      }
-    },
-    "array-union": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz?cache=0&sync_timestamp=1614624302839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-1.0.2.tgz",
-      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
-      "dev": true,
-      "requires": {
-        "array-uniq": "^1.0.1"
-      }
-    },
-    "array-uniq": {
-      "version": "1.0.3",
-      "resolved": "https://registry.nlark.com/array-uniq/download/array-uniq-1.0.3.tgz?cache=0&sync_timestamp=1620042045402&other_urls=https%3A%2F%2Fregistry.nlark.com%2Farray-uniq%2Fdownload%2Farray-uniq-1.0.3.tgz",
-      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
-      "dev": true
-    },
-    "array-unique": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz",
-      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
-      "dev": true
-    },
-    "array.prototype.flat": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npm.taobao.org/array.prototype.flat/download/array.prototype.flat-1.2.4.tgz?cache=0&sync_timestamp=1605688512391&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray.prototype.flat%2Fdownload%2Farray.prototype.flat-1.2.4.tgz",
-      "integrity": "sha1-bvY4tDMSvUAbTGGZ/ex+LcnpoSM=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.0",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.18.0-next.1"
-      }
-    },
-    "asn1": {
-      "version": "0.2.4",
-      "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
-      "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
-      "dev": true,
-      "requires": {
-        "safer-buffer": "~2.1.0"
-      }
-    },
-    "asn1.js": {
-      "version": "5.4.1",
-      "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-5.4.1.tgz",
-      "integrity": "sha1-EamAuE67kXgc41sP3C7ilON4Pwc=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.0.0",
-        "inherits": "^2.0.1",
-        "minimalistic-assert": "^1.0.0",
-        "safer-buffer": "^2.1.0"
-      },
-      "dependencies": {
-        "bn.js": {
-          "version": "4.12.0",
-          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
-          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
-          "dev": true
-        }
-      }
-    },
-    "assert": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz",
-      "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=",
-      "dev": true,
-      "requires": {
-        "object-assign": "^4.1.1",
-        "util": "0.10.3"
-      },
-      "dependencies": {
-        "inherits": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz",
-          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
-          "dev": true
-        },
-        "util": {
-          "version": "0.10.3",
-          "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz",
-          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
-          "dev": true,
-          "requires": {
-            "inherits": "2.0.1"
-          }
-        }
-      }
-    },
-    "assert-plus": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
-      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-      "dev": true
-    },
-    "assign-symbols": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz",
-      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
-      "dev": true
-    },
-    "astral-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz",
-      "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=",
-      "dev": true
-    },
-    "async": {
-      "version": "2.6.3",
-      "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz",
-      "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.14"
-      }
-    },
-    "async-each": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz",
-      "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=",
-      "dev": true
-    },
-    "async-foreach": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz",
-      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
-      "dev": true
-    },
-    "async-limiter": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz",
-      "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=",
-      "dev": true
-    },
-    "async-validator": {
-      "version": "1.8.5",
-      "resolved": "https://registry.nlark.com/async-validator/download/async-validator-1.8.5.tgz",
-      "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
-      "requires": {
-        "babel-runtime": "6.x"
-      }
-    },
-    "asynckit": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
-      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
-      "dev": true
-    },
-    "atob": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
-      "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
-      "dev": true
-    },
-    "autoprefixer": {
-      "version": "9.8.6",
-      "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.6.tgz",
-      "integrity": "sha1-O3NZTKG/kmYyDFrPFYjXTep0IQ8=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.12.0",
-        "caniuse-lite": "^1.0.30001109",
-        "colorette": "^1.2.1",
-        "normalize-range": "^0.1.2",
-        "num2fraction": "^1.2.2",
-        "postcss": "^7.0.32",
-        "postcss-value-parser": "^4.1.0"
-      }
-    },
-    "aws-sign2": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
-      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-      "dev": true
-    },
-    "aws4": {
-      "version": "1.11.0",
-      "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.11.0.tgz?cache=0&sync_timestamp=1604101166484&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.11.0.tgz",
-      "integrity": "sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=",
-      "dev": true
-    },
-    "axios": {
-      "version": "0.21.1",
-      "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.21.1.tgz?cache=0&sync_timestamp=1608611162952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.21.1.tgz",
-      "integrity": "sha1-IlY0gZYvTWvemnbVFu8OXTwJsrg=",
-      "requires": {
-        "follow-redirects": "^1.10.0"
-      }
-    },
-    "babel-eslint": {
-      "version": "10.1.0",
-      "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz?cache=0&sync_timestamp=1611945896690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-eslint%2Fdownload%2Fbabel-eslint-10.1.0.tgz",
-      "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "@babel/parser": "^7.7.0",
-        "@babel/traverse": "^7.7.0",
-        "@babel/types": "^7.7.0",
-        "eslint-visitor-keys": "^1.0.0",
-        "resolve": "^1.12.0"
-      }
-    },
-    "babel-helper-vue-jsx-merge-props": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
-      "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY="
-    },
-    "babel-loader": {
-      "version": "8.2.2",
-      "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.2.2.tgz?cache=0&sync_timestamp=1606424705083&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.2.2.tgz",
-      "integrity": "sha1-k2POhMEMmkDmx1N0jhRBtgyKC4E=",
-      "dev": true,
-      "requires": {
-        "find-cache-dir": "^3.3.1",
-        "loader-utils": "^1.4.0",
-        "make-dir": "^3.1.0",
-        "schema-utils": "^2.6.5"
-      }
-    },
-    "babel-plugin-dynamic-import-node": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587495903478&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz",
-      "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=",
-      "dev": true,
-      "requires": {
-        "object.assign": "^4.1.0"
-      }
-    },
-    "babel-plugin-polyfill-corejs2": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-corejs2/download/babel-plugin-polyfill-corejs2-0.2.0.tgz",
-      "integrity": "sha1-aGd1v5pap1fhBSCQNnXjiJyu7cQ=",
-      "dev": true,
-      "requires": {
-        "@babel/compat-data": "^7.13.11",
-        "@babel/helper-define-polyfill-provider": "^0.2.0",
-        "semver": "^6.1.1"
-      }
-    },
-    "babel-plugin-polyfill-corejs3": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-corejs3/download/babel-plugin-polyfill-corejs3-0.2.0.tgz",
-      "integrity": "sha1-9LS7exkymCffNv9W9ubTZwJst6I=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-define-polyfill-provider": "^0.2.0",
-        "core-js-compat": "^3.9.1"
-      }
-    },
-    "babel-plugin-polyfill-regenerator": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/babel-plugin-polyfill-regenerator/download/babel-plugin-polyfill-regenerator-0.2.0.tgz",
-      "integrity": "sha1-hT9fVxb0aR2YyE+Aacdjbqjaerg=",
-      "dev": true,
-      "requires": {
-        "@babel/helper-define-polyfill-provider": "^0.2.0"
-      }
-    },
-    "babel-runtime": {
-      "version": "6.26.0",
-      "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
-      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
-      "requires": {
-        "core-js": "^2.4.0",
-        "regenerator-runtime": "^0.11.0"
-      },
-      "dependencies": {
-        "core-js": {
-          "version": "2.6.12",
-          "resolved": "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1620507873758&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz",
-          "integrity": "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw="
-        },
-        "regenerator-runtime": {
-          "version": "0.11.1",
-          "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz",
-          "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
-        }
-      }
-    },
-    "balanced-match": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz?cache=0&sync_timestamp=1617714233441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.2.tgz",
-      "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=",
-      "dev": true
-    },
-    "base": {
-      "version": "0.11.2",
-      "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz",
-      "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=",
-      "dev": true,
-      "requires": {
-        "cache-base": "^1.0.1",
-        "class-utils": "^0.3.5",
-        "component-emitter": "^1.2.1",
-        "define-property": "^1.0.0",
-        "isobject": "^3.0.1",
-        "mixin-deep": "^1.2.0",
-        "pascalcase": "^0.1.1"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
-          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "base64-js": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz?cache=0&sync_timestamp=1605123440207&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbase64-js%2Fdownload%2Fbase64-js-1.5.1.tgz",
-      "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=",
-      "dev": true
-    },
-    "batch": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz",
-      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
-      "dev": true
-    },
-    "bcrypt-pbkdf": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
-      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
-      "dev": true,
-      "requires": {
-        "tweetnacl": "^0.14.3"
-      }
-    },
-    "bfj": {
-      "version": "6.1.2",
-      "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz",
-      "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=",
-      "dev": true,
-      "requires": {
-        "bluebird": "^3.5.5",
-        "check-types": "^8.0.3",
-        "hoopy": "^0.1.4",
-        "tryer": "^1.0.1"
-      }
-    },
-    "big.js": {
-      "version": "5.2.2",
-      "resolved": "https://registry.nlark.com/big.js/download/big.js-5.2.2.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-5.2.2.tgz",
-      "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=",
-      "dev": true
-    },
-    "binary-extensions": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.2.0.tgz?cache=0&sync_timestamp=1610299308660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.2.0.tgz",
-      "integrity": "sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=",
-      "dev": true,
-      "optional": true
-    },
-    "bindings": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz",
-      "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "file-uri-to-path": "1.0.0"
-      }
-    },
-    "block-stream": {
-      "version": "0.0.9",
-      "resolved": "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz",
-      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
-      "dev": true,
-      "requires": {
-        "inherits": "~2.0.0"
-      }
-    },
-    "bluebird": {
-      "version": "3.7.2",
-      "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz",
-      "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=",
-      "dev": true
-    },
-    "bn.js": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.2.0.tgz",
-      "integrity": "sha1-NYhgZ0OWxpl3canQUfzBtX1K4AI=",
-      "dev": true
-    },
-    "body-parser": {
-      "version": "1.19.0",
-      "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz",
-      "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=",
-      "dev": true,
-      "requires": {
-        "bytes": "3.1.0",
-        "content-type": "~1.0.4",
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "http-errors": "1.7.2",
-        "iconv-lite": "0.4.24",
-        "on-finished": "~2.3.0",
-        "qs": "6.7.0",
-        "raw-body": "2.4.0",
-        "type-is": "~1.6.17"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.7.0",
-          "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz",
-          "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
-          "dev": true
-        }
-      }
-    },
-    "bonjour": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz",
-      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
-      "dev": true,
-      "requires": {
-        "array-flatten": "^2.1.0",
-        "deep-equal": "^1.0.1",
-        "dns-equal": "^1.0.0",
-        "dns-txt": "^2.0.2",
-        "multicast-dns": "^6.0.1",
-        "multicast-dns-service-types": "^1.1.0"
-      },
-      "dependencies": {
-        "array-flatten": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313384951&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz",
-          "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=",
-          "dev": true
-        }
-      }
-    },
-    "boolbase": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz",
-      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
-      "dev": true
-    },
-    "brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
-      "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
-      "dev": true,
-      "requires": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "braces": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz",
-      "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=",
-      "dev": true,
-      "requires": {
-        "arr-flatten": "^1.1.0",
-        "array-unique": "^0.3.2",
-        "extend-shallow": "^2.0.1",
-        "fill-range": "^4.0.0",
-        "isobject": "^3.0.1",
-        "repeat-element": "^1.1.2",
-        "snapdragon": "^0.8.1",
-        "snapdragon-node": "^2.0.1",
-        "split-string": "^3.0.2",
-        "to-regex": "^3.0.1"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
-      }
-    },
-    "brorand": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz",
-      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
-      "dev": true
-    },
-    "browserify-aes": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz",
-      "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=",
-      "dev": true,
-      "requires": {
-        "buffer-xor": "^1.0.3",
-        "cipher-base": "^1.0.0",
-        "create-hash": "^1.1.0",
-        "evp_bytestokey": "^1.0.3",
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "browserify-cipher": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz",
-      "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=",
-      "dev": true,
-      "requires": {
-        "browserify-aes": "^1.0.4",
-        "browserify-des": "^1.0.0",
-        "evp_bytestokey": "^1.0.0"
-      }
-    },
-    "browserify-des": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz",
-      "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "^1.0.1",
-        "des.js": "^1.0.0",
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.1.2"
-      }
-    },
-    "browserify-rsa": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.1.0.tgz",
-      "integrity": "sha1-sv0Gtbda4pf3zi3GUfkY9b4VjI0=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^5.0.0",
-        "randombytes": "^2.0.1"
-      }
-    },
-    "browserify-sign": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.1.tgz?cache=0&sync_timestamp=1596557839219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserify-sign%2Fdownload%2Fbrowserify-sign-4.2.1.tgz",
-      "integrity": "sha1-6vSt1G3VS+O7OzbAzxWrvrp5VsM=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^5.1.1",
-        "browserify-rsa": "^4.0.1",
-        "create-hash": "^1.2.0",
-        "create-hmac": "^1.1.7",
-        "elliptic": "^6.5.3",
-        "inherits": "^2.0.4",
-        "parse-asn1": "^5.1.5",
-        "readable-stream": "^3.6.0",
-        "safe-buffer": "^5.2.0"
-      },
-      "dependencies": {
-        "readable-stream": {
-          "version": "3.6.0",
-          "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz",
-          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
-          "dev": true,
-          "requires": {
-            "inherits": "^2.0.3",
-            "string_decoder": "^1.1.1",
-            "util-deprecate": "^1.0.1"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.2.1",
-          "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz",
-          "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
-          "dev": true
-        }
-      }
-    },
-    "browserify-zlib": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz",
-      "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=",
-      "dev": true,
-      "requires": {
-        "pako": "~1.0.5"
-      }
-    },
-    "browserslist": {
-      "version": "4.16.6",
-      "resolved": "https://registry.nlark.com/browserslist/download/browserslist-4.16.6.tgz?cache=0&sync_timestamp=1619789072079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.16.6.tgz",
-      "integrity": "sha1-15ASd6WojlVO0wWxg+ybDAj2b6I=",
-      "dev": true,
-      "requires": {
-        "caniuse-lite": "^1.0.30001219",
-        "colorette": "^1.2.2",
-        "electron-to-chromium": "^1.3.723",
-        "escalade": "^3.1.1",
-        "node-releases": "^1.1.71"
-      }
-    },
-    "buffer": {
-      "version": "4.9.2",
-      "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1606098159535&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz",
-      "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=",
-      "dev": true,
-      "requires": {
-        "base64-js": "^1.0.2",
-        "ieee754": "^1.1.4",
-        "isarray": "^1.0.0"
-      }
-    },
-    "buffer-from": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
-      "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=",
-      "dev": true
-    },
-    "buffer-indexof": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz",
-      "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=",
-      "dev": true
-    },
-    "buffer-json": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/buffer-json/download/buffer-json-2.0.0.tgz",
-      "integrity": "sha1-9z4TseQvGW/i/WfQAcfXEH7dfCM=",
-      "dev": true
-    },
-    "buffer-xor": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz",
-      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
-      "dev": true
-    },
-    "builtin-status-codes": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz",
-      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
-      "dev": true
-    },
-    "bytes": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz",
-      "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=",
-      "dev": true
-    },
-    "cacache": {
-      "version": "12.0.4",
-      "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1616431100222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz",
-      "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=",
-      "dev": true,
-      "requires": {
-        "bluebird": "^3.5.5",
-        "chownr": "^1.1.1",
-        "figgy-pudding": "^3.5.1",
-        "glob": "^7.1.4",
-        "graceful-fs": "^4.1.15",
-        "infer-owner": "^1.0.3",
-        "lru-cache": "^5.1.1",
-        "mississippi": "^3.0.0",
-        "mkdirp": "^0.5.1",
-        "move-concurrently": "^1.0.1",
-        "promise-inflight": "^1.0.1",
-        "rimraf": "^2.6.3",
-        "ssri": "^6.0.1",
-        "unique-filename": "^1.1.1",
-        "y18n": "^4.0.0"
-      }
-    },
-    "cache-base": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz",
-      "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=",
-      "dev": true,
-      "requires": {
-        "collection-visit": "^1.0.0",
-        "component-emitter": "^1.2.1",
-        "get-value": "^2.0.6",
-        "has-value": "^1.0.0",
-        "isobject": "^3.0.1",
-        "set-value": "^2.0.0",
-        "to-object-path": "^0.3.0",
-        "union-value": "^1.0.0",
-        "unset-value": "^1.0.0"
-      }
-    },
-    "cache-loader": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-4.1.0.tgz",
-      "integrity": "sha1-mUjK41OuwKH8ser9ojAIFuyFOH4=",
-      "dev": true,
-      "requires": {
-        "buffer-json": "^2.0.0",
-        "find-cache-dir": "^3.0.0",
-        "loader-utils": "^1.2.3",
-        "mkdirp": "^0.5.1",
-        "neo-async": "^2.6.1",
-        "schema-utils": "^2.0.0"
-      }
-    },
-    "call-bind": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610403007655&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz",
-      "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.0.2"
-      }
-    },
-    "call-me-maybe": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz",
-      "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
-      "dev": true
-    },
-    "caller-callsite": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz",
-      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
-      "dev": true,
-      "requires": {
-        "callsites": "^2.0.0"
-      }
-    },
-    "caller-path": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1618738124477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz",
-      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
-      "dev": true,
-      "requires": {
-        "caller-callsite": "^2.0.0"
-      }
-    },
-    "callsites": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz",
-      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
-      "dev": true
-    },
-    "camel-case": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1606869170809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz",
-      "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
-      "dev": true,
-      "requires": {
-        "no-case": "^2.2.0",
-        "upper-case": "^1.1.1"
-      }
-    },
-    "camelcase": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-6.2.0.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-6.2.0.tgz",
-      "integrity": "sha1-kkr4gcnVJaydh/QNlk5c6pgqGAk=",
-      "dev": true
-    },
-    "camelcase-keys": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz",
-      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
-      "dev": true,
-      "requires": {
-        "camelcase": "^2.0.0",
-        "map-obj": "^1.0.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-2.1.1.tgz",
-          "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
-          "dev": true
-        }
-      }
-    },
-    "caniuse-api": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz",
-      "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.0.0",
-        "caniuse-lite": "^1.0.0",
-        "lodash.memoize": "^4.1.2",
-        "lodash.uniq": "^4.5.0"
-      }
-    },
-    "caniuse-lite": {
-      "version": "1.0.30001228",
-      "resolved": "https://registry.nlark.com/caniuse-lite/download/caniuse-lite-1.0.30001228.tgz?cache=0&sync_timestamp=1620658693631&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001228.tgz",
-      "integrity": "sha1-v9xZQs0zJvpR7gtC++9NqdSSp/o=",
-      "dev": true
-    },
-    "case-sensitive-paths-webpack-plugin": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.4.0.tgz?cache=0&sync_timestamp=1614018085802&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.4.0.tgz",
-      "integrity": "sha1-22QGbGQi7tLgjMFLmGykN5bbxtQ=",
-      "dev": true
-    },
-    "caseless": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
-      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
-      "dev": true
-    },
-    "chalk": {
-      "version": "2.4.2",
-      "resolved": "https://registry.nlark.com/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz",
-      "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.1",
-        "escape-string-regexp": "^1.0.5",
-        "supports-color": "^5.3.0"
-      }
-    },
-    "chardet": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1601032454247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz",
-      "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=",
-      "dev": true
-    },
-    "check-types": {
-      "version": "8.0.3",
-      "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz",
-      "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=",
-      "dev": true
-    },
-    "chokidar": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.5.1.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.5.1.tgz",
-      "integrity": "sha1-7pznu+vSt59J8wR5nVRo4x4U5oo=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "anymatch": "~3.1.1",
-        "braces": "~3.0.2",
-        "fsevents": "~2.3.1",
-        "glob-parent": "~5.1.0",
-        "is-binary-path": "~2.1.0",
-        "is-glob": "~4.0.1",
-        "normalize-path": "~3.0.0",
-        "readdirp": "~3.5.0"
-      },
-      "dependencies": {
-        "braces": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
-          "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "fill-range": "^7.0.1"
-          }
-        },
-        "fill-range": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
-          "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "to-regex-range": "^5.0.1"
-          }
-        },
-        "is-number": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
-          "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
-          "dev": true,
-          "optional": true
-        },
-        "to-regex-range": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
-          "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "is-number": "^7.0.0"
-          }
-        }
-      }
-    },
-    "chownr": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchownr%2Fdownload%2Fchownr-1.1.4.tgz",
-      "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=",
-      "dev": true
-    },
-    "chrome-trace-event": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.3.tgz?cache=0&sync_timestamp=1617905925551&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchrome-trace-event%2Fdownload%2Fchrome-trace-event-1.0.3.tgz",
-      "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=",
-      "dev": true
-    },
-    "ci-info": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz",
-      "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=",
-      "dev": true
-    },
-    "cipher-base": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz",
-      "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "class-utils": {
-      "version": "0.3.6",
-      "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz",
-      "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=",
-      "dev": true,
-      "requires": {
-        "arr-union": "^3.1.0",
-        "define-property": "^0.2.5",
-        "isobject": "^3.0.0",
-        "static-extend": "^0.1.1"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        }
-      }
-    },
-    "clean-css": {
-      "version": "4.2.3",
-      "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz",
-      "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=",
-      "dev": true,
-      "requires": {
-        "source-map": "~0.6.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "clean-stack": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz",
-      "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=",
-      "dev": true
-    },
-    "cli-cursor": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz",
-      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-      "dev": true,
-      "requires": {
-        "restore-cursor": "^2.0.0"
-      }
-    },
-    "cli-highlight": {
-      "version": "2.1.11",
-      "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.11.tgz",
-      "integrity": "sha1-SXNvpFLwqvT65YDjCssmgo0twb8=",
-      "dev": true,
-      "requires": {
-        "chalk": "^4.0.0",
-        "highlight.js": "^10.7.1",
-        "mz": "^2.4.0",
-        "parse5": "^5.1.1",
-        "parse5-htmlparser2-tree-adapter": "^6.0.0",
-        "yargs": "^16.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
-          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
-          "dev": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.1",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
-          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
-          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
-          "dev": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
-          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
-          "dev": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
-          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
-          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
-          "dev": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "cli-spinners": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.6.0.tgz",
-      "integrity": "sha1-NsfcmPtqmna9YjjsP3fiQlYn6Tk=",
-      "dev": true
-    },
-    "cli-truncate": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz",
-      "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
-      "dev": true,
-      "requires": {
-        "slice-ansi": "0.0.4",
-        "string-width": "^1.0.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-          "dev": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "slice-ansi": {
-          "version": "0.0.4",
-          "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz?cache=0&sync_timestamp=1618554953055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-0.0.4.tgz",
-          "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz",
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-          "dev": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        }
-      }
-    },
-    "cli-width": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz",
-      "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=",
-      "dev": true
-    },
-    "clipboard": {
-      "version": "2.0.8",
-      "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.8.tgz?cache=0&sync_timestamp=1615410640293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.8.tgz",
-      "integrity": "sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=",
-      "requires": {
-        "good-listener": "^1.2.2",
-        "select": "^1.1.2",
-        "tiny-emitter": "^2.0.0"
-      }
-    },
-    "clipboardy": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz",
-      "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=",
-      "dev": true,
-      "requires": {
-        "arch": "^2.1.1",
-        "execa": "^1.0.0",
-        "is-wsl": "^2.1.1"
-      },
-      "dependencies": {
-        "is-wsl": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz",
-          "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=",
-          "dev": true,
-          "requires": {
-            "is-docker": "^2.0.0"
-          }
-        }
-      }
-    },
-    "cliui": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz?cache=0&sync_timestamp=1604880033053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-6.0.0.tgz",
-      "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=",
-      "dev": true,
-      "requires": {
-        "string-width": "^4.2.0",
-        "strip-ansi": "^6.0.0",
-        "wrap-ansi": "^6.2.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
-          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
-          "dev": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
-          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
-          "dev": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
-          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
-          "dev": true
-        },
-        "wrap-ansi": {
-          "version": "6.2.0",
-          "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz",
-          "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.0.0",
-            "string-width": "^4.1.0",
-            "strip-ansi": "^6.0.0"
-          }
-        }
-      }
-    },
-    "clone": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz",
-      "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
-      "dev": true
-    },
-    "clone-deep": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz",
-      "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=",
-      "dev": true,
-      "requires": {
-        "is-plain-object": "^2.0.4",
-        "kind-of": "^6.0.2",
-        "shallow-clone": "^3.0.0"
-      }
-    },
-    "coa": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz",
-      "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=",
-      "dev": true,
-      "requires": {
-        "@types/q": "^1.5.1",
-        "chalk": "^2.4.1",
-        "q": "^1.1.2"
-      }
-    },
-    "code-point-at": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true
-    },
-    "collection-visit": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz",
-      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
-      "dev": true,
-      "requires": {
-        "map-visit": "^1.0.0",
-        "object-visit": "^1.0.0"
-      }
-    },
-    "color": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.3.tgz?cache=0&sync_timestamp=1602228883047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.3.tgz",
-      "integrity": "sha1-ymf7TnuX1hHc3jns7tQiBn2RWW4=",
-      "dev": true,
-      "requires": {
-        "color-convert": "^1.9.1",
-        "color-string": "^1.5.4"
-      }
-    },
-    "color-convert": {
-      "version": "1.9.3",
-      "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
-      "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
-      "dev": true,
-      "requires": {
-        "color-name": "1.1.3"
-      }
-    },
-    "color-name": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-      "dev": true
-    },
-    "color-string": {
-      "version": "1.5.5",
-      "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.5.tgz?cache=0&sync_timestamp=1614967243349&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-string%2Fdownload%2Fcolor-string-1.5.5.tgz",
-      "integrity": "sha1-ZUdKjw50OWJfPSemoZ2J/EUiMBQ=",
-      "dev": true,
-      "requires": {
-        "color-name": "^1.0.0",
-        "simple-swizzle": "^0.2.2"
-      }
-    },
-    "colorette": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259623635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz",
-      "integrity": "sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ=",
-      "dev": true
-    },
-    "combined-stream": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz",
-      "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=",
-      "dev": true,
-      "requires": {
-        "delayed-stream": "~1.0.0"
-      }
-    },
-    "commander": {
-      "version": "2.20.3",
-      "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1616364009866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz",
-      "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=",
-      "dev": true
-    },
-    "commondir": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz",
-      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
-      "dev": true
-    },
-    "component-emitter": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz",
-      "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=",
-      "dev": true
-    },
-    "compressible": {
-      "version": "2.0.18",
-      "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz",
-      "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=",
-      "dev": true,
-      "requires": {
-        "mime-db": ">= 1.43.0 < 2"
-      }
-    },
-    "compression": {
-      "version": "1.7.4",
-      "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz",
-      "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.5",
-        "bytes": "3.0.0",
-        "compressible": "~2.0.16",
-        "debug": "2.6.9",
-        "on-headers": "~1.0.2",
-        "safe-buffer": "5.1.2",
-        "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "bytes": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz",
-          "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
-          "dev": true
-        },
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "concat-map": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-      "dev": true
-    },
-    "concat-stream": {
-      "version": "1.6.2",
-      "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz",
-      "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=",
-      "dev": true,
-      "requires": {
-        "buffer-from": "^1.0.0",
-        "inherits": "^2.0.3",
-        "readable-stream": "^2.2.2",
-        "typedarray": "^0.0.6"
-      }
-    },
-    "connect-history-api-fallback": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz",
-      "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=",
-      "dev": true
-    },
-    "console-browserify": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz",
-      "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=",
-      "dev": true
-    },
-    "console-control-strings": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz",
-      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
-      "dev": true
-    },
-    "consolidate": {
-      "version": "0.15.1",
-      "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz?cache=0&sync_timestamp=1599596647062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconsolidate%2Fdownload%2Fconsolidate-0.15.1.tgz",
-      "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=",
-      "dev": true,
-      "requires": {
-        "bluebird": "^3.1.1"
-      }
-    },
-    "constants-browserify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz",
-      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
-      "dev": true
-    },
-    "contains-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/contains-path/download/contains-path-1.0.0.tgz",
-      "integrity": "sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE=",
-      "dev": true,
-      "requires": {
-        "normalize-path": "^2.1.1",
-        "path-starts-with": "^1.0.0"
-      },
-      "dependencies": {
-        "normalize-path": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
-          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-          "dev": true,
-          "requires": {
-            "remove-trailing-separator": "^1.0.1"
-          }
-        }
-      }
-    },
-    "content-disposition": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz",
-      "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "5.1.2"
-      }
-    },
-    "content-type": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz",
-      "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=",
-      "dev": true
-    },
-    "convert-source-map": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz?cache=0&sync_timestamp=1573003637425&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fconvert-source-map%2Fdownload%2Fconvert-source-map-1.7.0.tgz",
-      "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "~5.1.1"
-      }
-    },
-    "cookie": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz?cache=0&sync_timestamp=1587525865178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcookie%2Fdownload%2Fcookie-0.4.0.tgz",
-      "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=",
-      "dev": true
-    },
-    "cookie-signature": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz",
-      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
-      "dev": true
-    },
-    "copy-concurrently": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz",
-      "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.1.1",
-        "fs-write-stream-atomic": "^1.0.8",
-        "iferr": "^0.1.5",
-        "mkdirp": "^0.5.1",
-        "rimraf": "^2.5.4",
-        "run-queue": "^1.0.0"
-      }
-    },
-    "copy-descriptor": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz",
-      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
-      "dev": true
-    },
-    "copy-webpack-plugin": {
-      "version": "5.1.2",
-      "resolved": "https://registry.nlark.com/copy-webpack-plugin/download/copy-webpack-plugin-5.1.2.tgz",
-      "integrity": "sha1-ioieHcr6bJHGzUvhrRWPHTgjuuI=",
-      "dev": true,
-      "requires": {
-        "cacache": "^12.0.3",
-        "find-cache-dir": "^2.1.0",
-        "glob-parent": "^3.1.0",
-        "globby": "^7.1.1",
-        "is-glob": "^4.0.1",
-        "loader-utils": "^1.2.3",
-        "minimatch": "^3.0.4",
-        "normalize-path": "^3.0.0",
-        "p-limit": "^2.2.1",
-        "schema-utils": "^1.0.0",
-        "serialize-javascript": "^4.0.0",
-        "webpack-log": "^2.0.0"
-      },
-      "dependencies": {
-        "find-cache-dir": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz",
-          "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=",
-          "dev": true,
-          "requires": {
-            "commondir": "^1.0.1",
-            "make-dir": "^2.0.0",
-            "pkg-dir": "^3.0.0"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
-          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "glob-parent": {
-          "version": "3.1.0",
-          "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz",
-          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^3.1.0",
-            "path-dirname": "^1.0.0"
-          },
-          "dependencies": {
-            "is-glob": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
-              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-              "dev": true,
-              "requires": {
-                "is-extglob": "^2.1.0"
-              }
-            }
-          }
-        },
-        "globby": {
-          "version": "7.1.1",
-          "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-7.1.1.tgz",
-          "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
-          "dev": true,
-          "requires": {
-            "array-union": "^1.0.1",
-            "dir-glob": "^2.0.0",
-            "glob": "^7.1.2",
-            "ignore": "^3.3.5",
-            "pify": "^3.0.0",
-            "slash": "^1.0.0"
-          },
-          "dependencies": {
-            "pify": {
-              "version": "3.0.0",
-              "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
-              "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-              "dev": true
-            }
-          }
-        },
-        "ignore": {
-          "version": "3.3.10",
-          "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz",
-          "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=",
-          "dev": true
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
-          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "make-dir": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz",
-          "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
-          "dev": true,
-          "requires": {
-            "pify": "^4.0.1",
-            "semver": "^5.6.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
-          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        },
-        "pkg-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz",
-          "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0"
-          }
-        },
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
-          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
-          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
-          "dev": true
-        },
-        "slash": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz?cache=0&sync_timestamp=1618384508676&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-1.0.0.tgz",
-          "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
-          "dev": true
-        }
-      }
-    },
-    "core-js": {
-      "version": "3.12.1",
-      "resolved": "https://registry.nlark.com/core-js/download/core-js-3.12.1.tgz?cache=0&sync_timestamp=1620507873758&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-js%2Fdownload%2Fcore-js-3.12.1.tgz",
-      "integrity": "sha1-a1r0/1VhbAikTThvH1EJF/8gQRI="
-    },
-    "core-js-compat": {
-      "version": "3.12.1",
-      "resolved": "https://registry.nlark.com/core-js-compat/download/core-js-compat-3.12.1.tgz?cache=0&sync_timestamp=1620509313036&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcore-js-compat%2Fdownload%2Fcore-js-compat-3.12.1.tgz",
-      "integrity": "sha1-LDAsRwhQX6cHKwrbUVbSb3gBoYs=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.16.6",
-        "semver": "7.0.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.0.0.tgz",
-          "integrity": "sha1-XzyjV2HkfgWyBsba/yz4FPAxa44=",
-          "dev": true
-        }
-      }
-    },
-    "core-util-is": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
-      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
-      "dev": true
-    },
-    "cosmiconfig": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz?cache=0&sync_timestamp=1596310819353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcosmiconfig%2Fdownload%2Fcosmiconfig-5.2.1.tgz",
-      "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=",
-      "dev": true,
-      "requires": {
-        "import-fresh": "^2.0.0",
-        "is-directory": "^0.3.1",
-        "js-yaml": "^3.13.1",
-        "parse-json": "^4.0.0"
-      },
-      "dependencies": {
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.3.1",
-            "json-parse-better-errors": "^1.0.1"
-          }
-        }
-      }
-    },
-    "create-ecdh": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.4.tgz?cache=0&sync_timestamp=1596557423693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcreate-ecdh%2Fdownload%2Fcreate-ecdh-4.0.4.tgz",
-      "integrity": "sha1-1uf0v/pmc2CFoHYv06YyaE2rzE4=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.0",
-        "elliptic": "^6.5.3"
-      },
-      "dependencies": {
-        "bn.js": {
-          "version": "4.12.0",
-          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
-          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
-          "dev": true
-        }
-      }
-    },
-    "create-hash": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz",
-      "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "^1.0.1",
-        "inherits": "^2.0.1",
-        "md5.js": "^1.3.4",
-        "ripemd160": "^2.0.1",
-        "sha.js": "^2.4.0"
-      }
-    },
-    "create-hmac": {
-      "version": "1.1.7",
-      "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz",
-      "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=",
-      "dev": true,
-      "requires": {
-        "cipher-base": "^1.0.3",
-        "create-hash": "^1.1.0",
-        "inherits": "^2.0.1",
-        "ripemd160": "^2.0.0",
-        "safe-buffer": "^5.0.1",
-        "sha.js": "^2.4.8"
-      }
-    },
-    "cross-spawn": {
-      "version": "6.0.5",
-      "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz",
-      "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=",
-      "dev": true,
-      "requires": {
-        "nice-try": "^1.0.4",
-        "path-key": "^2.0.1",
-        "semver": "^5.5.0",
-        "shebang-command": "^1.2.0",
-        "which": "^1.2.9"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
-          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
-          "dev": true
-        }
-      }
-    },
-    "crypto-browserify": {
-      "version": "3.12.0",
-      "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz",
-      "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=",
-      "dev": true,
-      "requires": {
-        "browserify-cipher": "^1.0.0",
-        "browserify-sign": "^4.0.0",
-        "create-ecdh": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "create-hmac": "^1.1.0",
-        "diffie-hellman": "^5.0.0",
-        "inherits": "^2.0.1",
-        "pbkdf2": "^3.0.3",
-        "public-encrypt": "^4.0.0",
-        "randombytes": "^2.0.0",
-        "randomfill": "^1.0.3"
-      }
-    },
-    "css-color-names": {
-      "version": "0.0.4",
-      "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz",
-      "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
-      "dev": true
-    },
-    "css-declaration-sorter": {
-      "version": "4.0.1",
-      "resolved": "https://registry.nlark.com/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1620754698059&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz",
-      "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.1",
-        "timsort": "^0.3.0"
-      }
-    },
-    "css-loader": {
-      "version": "3.6.0",
-      "resolved": "https://registry.nlark.com/css-loader/download/css-loader-3.6.0.tgz",
-      "integrity": "sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU=",
-      "dev": true,
-      "requires": {
-        "camelcase": "^5.3.1",
-        "cssesc": "^3.0.0",
-        "icss-utils": "^4.1.1",
-        "loader-utils": "^1.2.3",
-        "normalize-path": "^3.0.0",
-        "postcss": "^7.0.32",
-        "postcss-modules-extract-imports": "^2.0.0",
-        "postcss-modules-local-by-default": "^3.0.2",
-        "postcss-modules-scope": "^2.2.0",
-        "postcss-modules-values": "^3.0.0",
-        "postcss-value-parser": "^4.1.0",
-        "schema-utils": "^2.7.0",
-        "semver": "^6.3.0"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
-          "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
-          "dev": true
-        }
-      }
-    },
-    "css-select": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz",
-      "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=",
-      "dev": true,
-      "requires": {
-        "boolbase": "^1.0.0",
-        "css-what": "^3.2.1",
-        "domutils": "^1.7.0",
-        "nth-check": "^1.0.2"
-      }
-    },
-    "css-select-base-adapter": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz",
-      "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=",
-      "dev": true
-    },
-    "css-tree": {
-      "version": "1.0.0-alpha.37",
-      "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz",
-      "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=",
-      "dev": true,
-      "requires": {
-        "mdn-data": "2.0.4",
-        "source-map": "^0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "css-what": {
-      "version": "3.4.2",
-      "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.4.2.tgz?cache=0&sync_timestamp=1615262617763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-what%2Fdownload%2Fcss-what-3.4.2.tgz",
-      "integrity": "sha1-6nAm/LAXd+295SEk4h8yfnrpUOQ=",
-      "dev": true
-    },
-    "cssesc": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz",
-      "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=",
-      "dev": true
-    },
-    "cssnano": {
-      "version": "4.1.11",
-      "resolved": "https://registry.nlark.com/cssnano/download/cssnano-4.1.11.tgz?cache=0&sync_timestamp=1619611252094&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano%2Fdownload%2Fcssnano-4.1.11.tgz",
-      "integrity": "sha1-x7X1uB2iacsf2YLLlgwSAJEMmpk=",
-      "dev": true,
-      "requires": {
-        "cosmiconfig": "^5.0.0",
-        "cssnano-preset-default": "^4.0.8",
-        "is-resolvable": "^1.0.0",
-        "postcss": "^7.0.0"
-      }
-    },
-    "cssnano-preset-default": {
-      "version": "4.0.8",
-      "resolved": "https://registry.nlark.com/cssnano-preset-default/download/cssnano-preset-default-4.0.8.tgz?cache=0&sync_timestamp=1619610598052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcssnano-preset-default%2Fdownload%2Fcssnano-preset-default-4.0.8.tgz",
-      "integrity": "sha1-kgYisfwelaNOiDggPxOXpQTy0/8=",
-      "dev": true,
-      "requires": {
-        "css-declaration-sorter": "^4.0.1",
-        "cssnano-util-raw-cache": "^4.0.1",
-        "postcss": "^7.0.0",
-        "postcss-calc": "^7.0.1",
-        "postcss-colormin": "^4.0.3",
-        "postcss-convert-values": "^4.0.1",
-        "postcss-discard-comments": "^4.0.2",
-        "postcss-discard-duplicates": "^4.0.2",
-        "postcss-discard-empty": "^4.0.1",
-        "postcss-discard-overridden": "^4.0.1",
-        "postcss-merge-longhand": "^4.0.11",
-        "postcss-merge-rules": "^4.0.3",
-        "postcss-minify-font-values": "^4.0.2",
-        "postcss-minify-gradients": "^4.0.2",
-        "postcss-minify-params": "^4.0.2",
-        "postcss-minify-selectors": "^4.0.2",
-        "postcss-normalize-charset": "^4.0.1",
-        "postcss-normalize-display-values": "^4.0.2",
-        "postcss-normalize-positions": "^4.0.2",
-        "postcss-normalize-repeat-style": "^4.0.2",
-        "postcss-normalize-string": "^4.0.2",
-        "postcss-normalize-timing-functions": "^4.0.2",
-        "postcss-normalize-unicode": "^4.0.1",
-        "postcss-normalize-url": "^4.0.1",
-        "postcss-normalize-whitespace": "^4.0.2",
-        "postcss-ordered-values": "^4.1.2",
-        "postcss-reduce-initial": "^4.0.3",
-        "postcss-reduce-transforms": "^4.0.2",
-        "postcss-svgo": "^4.0.3",
-        "postcss-unique-selectors": "^4.0.1"
-      }
-    },
-    "cssnano-util-get-arguments": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz",
-      "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
-      "dev": true
-    },
-    "cssnano-util-get-match": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz",
-      "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
-      "dev": true
-    },
-    "cssnano-util-raw-cache": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz",
-      "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0"
-      }
-    },
-    "cssnano-util-same-parent": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz",
-      "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=",
-      "dev": true
-    },
-    "csso": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.2.0.tgz?cache=0&sync_timestamp=1606408849393&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.2.0.tgz",
-      "integrity": "sha1-6jpWE0bo3J9UbW/r7dUBh884lSk=",
-      "dev": true,
-      "requires": {
-        "css-tree": "^1.1.2"
-      },
-      "dependencies": {
-        "css-tree": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.1.3.tgz",
-          "integrity": "sha1-60hw+2/XcHMn7JXC/yqwm16NuR0=",
-          "dev": true,
-          "requires": {
-            "mdn-data": "2.0.14",
-            "source-map": "^0.6.1"
-          }
-        },
-        "mdn-data": {
-          "version": "2.0.14",
-          "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.14.tgz",
-          "integrity": "sha1-cRP8QoGRfWPOKbQ0RvcB5owlulA=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "currently-unhandled": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
-      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
-      "dev": true,
-      "requires": {
-        "array-find-index": "^1.0.1"
-      }
-    },
-    "cyclist": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz",
-      "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
-      "dev": true
-    },
-    "dashdash": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz?cache=0&sync_timestamp=1601073454623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdashdash%2Fdownload%2Fdashdash-1.14.1.tgz",
-      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0"
-      }
-    },
-    "date-fns": {
-      "version": "1.30.1",
-      "resolved": "https://registry.nlark.com/date-fns/download/date-fns-1.30.1.tgz?cache=0&sync_timestamp=1620446248863&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdate-fns%2Fdownload%2Fdate-fns-1.30.1.tgz",
-      "integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=",
-      "dev": true
-    },
-    "de-indent": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
-      "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
-      "dev": true
-    },
-    "debug": {
-      "version": "4.3.1",
-      "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
-      "integrity": "sha1-8NIpxQXgxtjEmsVT0bE9wYP2su4=",
-      "dev": true,
-      "requires": {
-        "ms": "2.1.2"
-      }
-    },
-    "decamelize": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1610348716845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-      "dev": true
-    },
-    "decode-uri-component": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz",
-      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
-      "dev": true
-    },
-    "dedent": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz",
-      "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
-      "dev": true
-    },
-    "deep-equal": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz",
-      "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=",
-      "dev": true,
-      "requires": {
-        "is-arguments": "^1.0.4",
-        "is-date-object": "^1.0.1",
-        "is-regex": "^1.0.4",
-        "object-is": "^1.0.1",
-        "object-keys": "^1.1.1",
-        "regexp.prototype.flags": "^1.2.0"
-      }
-    },
-    "deep-is": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz",
-      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
-      "dev": true
-    },
-    "deepmerge": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz?cache=0&sync_timestamp=1572279720382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz",
-      "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
-    },
-    "default-gateway": {
-      "version": "5.0.5",
-      "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-5.0.5.tgz",
-      "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=",
-      "dev": true,
-      "requires": {
-        "execa": "^3.3.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz",
-          "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
-          "dev": true,
-          "requires": {
-            "path-key": "^3.1.0",
-            "shebang-command": "^2.0.0",
-            "which": "^2.0.1"
-          }
-        },
-        "execa": {
-          "version": "3.4.0",
-          "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1606971018065&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz",
-          "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^7.0.0",
-            "get-stream": "^5.0.0",
-            "human-signals": "^1.1.1",
-            "is-stream": "^2.0.0",
-            "merge-stream": "^2.0.0",
-            "npm-run-path": "^4.0.0",
-            "onetime": "^5.1.0",
-            "p-finally": "^2.0.0",
-            "signal-exit": "^3.0.2",
-            "strip-final-newline": "^2.0.0"
-          }
-        },
-        "get-stream": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz",
-          "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "is-stream": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz",
-          "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=",
-          "dev": true
-        },
-        "mimic-fn": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1617823583529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz",
-          "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=",
-          "dev": true
-        },
-        "npm-run-path": {
-          "version": "4.0.1",
-          "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz",
-          "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=",
-          "dev": true,
-          "requires": {
-            "path-key": "^3.0.0"
-          }
-        },
-        "onetime": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz",
-          "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=",
-          "dev": true,
-          "requires": {
-            "mimic-fn": "^2.1.0"
-          }
-        },
-        "p-finally": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz",
-          "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=",
-          "dev": true
-        },
-        "path-key": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz",
-          "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
-          "dev": true
-        },
-        "shebang-command": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
-          "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
-          "dev": true,
-          "requires": {
-            "shebang-regex": "^3.0.0"
-          }
-        },
-        "shebang-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz",
-          "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
-          "dev": true
-        },
-        "which": {
-          "version": "2.0.2",
-          "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz",
-          "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
-          "dev": true,
-          "requires": {
-            "isexe": "^2.0.0"
-          }
-        }
-      }
-    },
-    "defaults": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz",
-      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
-      "dev": true,
-      "requires": {
-        "clone": "^1.0.2"
-      }
-    },
-    "define-properties": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz",
-      "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
-      "dev": true,
-      "requires": {
-        "object-keys": "^1.0.12"
-      }
-    },
-    "define-property": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz",
-      "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=",
-      "dev": true,
-      "requires": {
-        "is-descriptor": "^1.0.2",
-        "isobject": "^3.0.1"
-      },
-      "dependencies": {
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
-          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "del": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz?cache=0&sync_timestamp=1601076882347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-4.1.1.tgz",
-      "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=",
-      "dev": true,
-      "requires": {
-        "@types/glob": "^7.1.1",
-        "globby": "^6.1.0",
-        "is-path-cwd": "^2.0.0",
-        "is-path-in-cwd": "^2.0.0",
-        "p-map": "^2.0.0",
-        "pify": "^4.0.1",
-        "rimraf": "^2.6.3"
-      },
-      "dependencies": {
-        "globby": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-6.1.0.tgz",
-          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
-          "dev": true,
-          "requires": {
-            "array-union": "^1.0.1",
-            "glob": "^7.0.3",
-            "object-assign": "^4.0.1",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          },
-          "dependencies": {
-            "pify": {
-              "version": "2.3.0",
-              "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-              "dev": true
-            }
-          }
-        }
-      }
-    },
-    "delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
-      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
-      "dev": true
-    },
-    "delegate": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz",
-      "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY="
-    },
-    "delegates": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz",
-      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
-      "dev": true
-    },
-    "depd": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
-      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
-      "dev": true
-    },
-    "des.js": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz",
-      "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "minimalistic-assert": "^1.0.0"
-      }
-    },
-    "destroy": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz",
-      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
-      "dev": true
-    },
-    "detect-node": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.5.tgz?cache=0&sync_timestamp=1615921320304&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-node%2Fdownload%2Fdetect-node-2.0.5.tgz",
-      "integrity": "sha1-nScKp+qlrwtyxMnZuBTn9M5zi3k=",
-      "dev": true
-    },
-    "diffie-hellman": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz",
-      "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.0",
-        "miller-rabin": "^4.0.0",
-        "randombytes": "^2.0.0"
-      },
-      "dependencies": {
-        "bn.js": {
-          "version": "4.12.0",
-          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
-          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
-          "dev": true
-        }
-      }
-    },
-    "dir-glob": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz",
-      "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=",
-      "dev": true,
-      "requires": {
-        "path-type": "^3.0.0"
-      }
-    },
-    "dns-equal": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz",
-      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
-      "dev": true
-    },
-    "dns-packet": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz",
-      "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=",
-      "dev": true,
-      "requires": {
-        "ip": "^1.1.0",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "dns-txt": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz",
-      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
-      "dev": true,
-      "requires": {
-        "buffer-indexof": "^1.0.0"
-      }
-    },
-    "doctrine": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz",
-      "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=",
-      "dev": true,
-      "requires": {
-        "esutils": "^2.0.2"
-      }
-    },
-    "dom-converter": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz",
-      "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=",
-      "dev": true,
-      "requires": {
-        "utila": "~0.4"
-      }
-    },
-    "dom-serializer": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz",
-      "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "^2.0.1",
-        "entities": "^2.0.0"
-      },
-      "dependencies": {
-        "domelementtype": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz",
-          "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
-          "dev": true
-        }
-      }
-    },
-    "domain-browser": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1604239998047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz",
-      "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=",
-      "dev": true
-    },
-    "domelementtype": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz",
-      "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=",
-      "dev": true
-    },
-    "domhandler": {
-      "version": "2.4.2",
-      "resolved": "https://registry.nlark.com/domhandler/download/domhandler-2.4.2.tgz",
-      "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "1"
-      }
-    },
-    "domutils": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz",
-      "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=",
-      "dev": true,
-      "requires": {
-        "dom-serializer": "0",
-        "domelementtype": "1"
-      }
-    },
-    "dot-prop": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.3.0.tgz?cache=0&sync_timestamp=1605778229330&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.3.0.tgz",
-      "integrity": "sha1-kMzOcIzZzYLMTcjD3dmr3VWyDog=",
-      "dev": true,
-      "requires": {
-        "is-obj": "^2.0.0"
-      }
-    },
-    "dotenv": {
-      "version": "8.6.0",
-      "resolved": "https://registry.nlark.com/dotenv/download/dotenv-8.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdotenv%2Fdownload%2Fdotenv-8.6.0.tgz",
-      "integrity": "sha1-Bhr2ZNGff02PxuT/m1hM4jety4s=",
-      "dev": true
-    },
-    "dotenv-expand": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz",
-      "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=",
-      "dev": true
-    },
-    "duplexer": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz",
-      "integrity": "sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=",
-      "dev": true
-    },
-    "duplexify": {
-      "version": "3.7.1",
-      "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz",
-      "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.0.0",
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.0.0",
-        "stream-shift": "^1.0.0"
-      }
-    },
-    "easings-css": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/easings-css/download/easings-css-1.0.0.tgz",
-      "integrity": "sha1-3eVpADu3pKDAt3h49ds+C+VnnIE="
-    },
-    "easy-stack": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.1.tgz?cache=0&sync_timestamp=1605129209848&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feasy-stack%2Fdownload%2Feasy-stack-1.0.1.tgz",
-      "integrity": "sha1-iv5CZGJpiMq7EfPHBMzQyDVBEGY=",
-      "dev": true
-    },
-    "ecc-jsbn": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz",
-      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
-      "dev": true,
-      "requires": {
-        "jsbn": "~0.1.0",
-        "safer-buffer": "^2.1.0"
-      }
-    },
-    "echarts": {
-      "version": "5.4.3",
-      "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz",
-      "integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==",
-      "requires": {
-        "tslib": "2.3.0",
-        "zrender": "5.4.4"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
-          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
-        }
-      }
-    },
-    "ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
-      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
-      "dev": true
-    },
-    "ejs": {
-      "version": "2.7.4",
-      "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz?cache=0&sync_timestamp=1612643435705&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fejs%2Fdownload%2Fejs-2.7.4.tgz",
-      "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=",
-      "dev": true
-    },
-    "electron-to-chromium": {
-      "version": "1.3.728",
-      "resolved": "https://registry.nlark.com/electron-to-chromium/download/electron-to-chromium-1.3.728.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.728.tgz",
-      "integrity": "sha1-2+3WNz9ZWuEKE9FGtmvs5MGvpb0=",
-      "dev": true
-    },
-    "elegant-spinner": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz",
-      "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
-      "dev": true
-    },
-    "element-ui": {
-      "version": "2.15.1",
-      "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.15.1.tgz",
-      "integrity": "sha1-raAKpuMsAndKLndWPdhGaPgTzf8=",
-      "requires": {
-        "async-validator": "~1.8.1",
-        "babel-helper-vue-jsx-merge-props": "^2.0.0",
-        "deepmerge": "^1.2.0",
-        "normalize-wheel": "^1.0.1",
-        "resize-observer-polyfill": "^1.5.0",
-        "throttle-debounce": "^1.0.1"
-      }
-    },
-    "elliptic": {
-      "version": "6.5.4",
-      "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.4.tgz",
-      "integrity": "sha1-2jfOvTHnmhNn6UG1ku0fvr1Yq7s=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.11.9",
-        "brorand": "^1.1.0",
-        "hash.js": "^1.0.0",
-        "hmac-drbg": "^1.0.1",
-        "inherits": "^2.0.4",
-        "minimalistic-assert": "^1.0.1",
-        "minimalistic-crypto-utils": "^1.0.1"
-      },
-      "dependencies": {
-        "bn.js": {
-          "version": "4.12.0",
-          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
-          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
-          "dev": true
-        }
-      }
-    },
-    "emoji-regex": {
-      "version": "8.0.0",
-      "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-8.0.0.tgz",
-      "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=",
-      "dev": true
-    },
-    "emojis-list": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz",
-      "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=",
-      "dev": true
-    },
-    "encodeurl": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz",
-      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
-      "dev": true
-    },
-    "end-of-stream": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz",
-      "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=",
-      "dev": true,
-      "requires": {
-        "once": "^1.4.0"
-      }
-    },
-    "enhanced-resolve": {
-      "version": "4.5.0",
-      "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-4.5.0.tgz",
-      "integrity": "sha1-Lzz9hNvjtIfxjy2y7x4GSlccpew=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "memory-fs": "^0.5.0",
-        "tapable": "^1.0.0"
-      },
-      "dependencies": {
-        "memory-fs": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz",
-          "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=",
-          "dev": true,
-          "requires": {
-            "errno": "^0.1.3",
-            "readable-stream": "^2.0.1"
-          }
-        }
-      }
-    },
-    "entities": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.2.0.tgz",
-      "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
-      "dev": true
-    },
-    "errno": {
-      "version": "0.1.8",
-      "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.8.tgz",
-      "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=",
-      "dev": true,
-      "requires": {
-        "prr": "~1.0.1"
-      }
-    },
-    "error-ex": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz",
-      "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
-      "dev": true,
-      "requires": {
-        "is-arrayish": "^0.2.1"
-      }
-    },
-    "error-stack-parser": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz",
-      "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=",
-      "dev": true,
-      "requires": {
-        "stackframe": "^1.1.1"
-      }
-    },
-    "es-abstract": {
-      "version": "1.18.0",
-      "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.18.0.tgz",
-      "integrity": "sha1-q4CzWe7Lft5MKYAAOQvFrD7HtaQ=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "es-to-primitive": "^1.2.1",
-        "function-bind": "^1.1.1",
-        "get-intrinsic": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.2",
-        "is-callable": "^1.2.3",
-        "is-negative-zero": "^2.0.1",
-        "is-regex": "^1.1.2",
-        "is-string": "^1.0.5",
-        "object-inspect": "^1.9.0",
-        "object-keys": "^1.1.1",
-        "object.assign": "^4.1.2",
-        "string.prototype.trimend": "^1.0.4",
-        "string.prototype.trimstart": "^1.0.4",
-        "unbox-primitive": "^1.0.0"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz",
-      "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=",
-      "dev": true,
-      "requires": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      }
-    },
-    "escalade": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1602567224085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz",
-      "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=",
-      "dev": true
-    },
-    "escape-html": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz",
-      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
-      "dev": true
-    },
-    "escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1618677243201&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true
-    },
-    "eslint": {
-      "version": "6.8.0",
-      "resolved": "https://registry.nlark.com/eslint/download/eslint-6.8.0.tgz?cache=0&sync_timestamp=1620440445769&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint%2Fdownload%2Feslint-6.8.0.tgz",
-      "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "ajv": "^6.10.0",
-        "chalk": "^2.1.0",
-        "cross-spawn": "^6.0.5",
-        "debug": "^4.0.1",
-        "doctrine": "^3.0.0",
-        "eslint-scope": "^5.0.0",
-        "eslint-utils": "^1.4.3",
-        "eslint-visitor-keys": "^1.1.0",
-        "espree": "^6.1.2",
-        "esquery": "^1.0.1",
-        "esutils": "^2.0.2",
-        "file-entry-cache": "^5.0.1",
-        "functional-red-black-tree": "^1.0.1",
-        "glob-parent": "^5.0.0",
-        "globals": "^12.1.0",
-        "ignore": "^4.0.6",
-        "import-fresh": "^3.0.0",
-        "imurmurhash": "^0.1.4",
-        "inquirer": "^7.0.0",
-        "is-glob": "^4.0.0",
-        "js-yaml": "^3.13.1",
-        "json-stable-stringify-without-jsonify": "^1.0.1",
-        "levn": "^0.3.0",
-        "lodash": "^4.17.14",
-        "minimatch": "^3.0.4",
-        "mkdirp": "^0.5.1",
-        "natural-compare": "^1.4.0",
-        "optionator": "^0.8.3",
-        "progress": "^2.0.0",
-        "regexpp": "^2.0.1",
-        "semver": "^6.1.2",
-        "strip-ansi": "^5.2.0",
-        "strip-json-comments": "^3.0.1",
-        "table": "^5.2.3",
-        "text-table": "^0.2.0",
-        "v8-compile-cache": "^2.0.3"
-      },
-      "dependencies": {
-        "eslint-scope": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1599933651660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz",
-          "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=",
-          "dev": true,
-          "requires": {
-            "esrecurse": "^4.3.0",
-            "estraverse": "^4.1.1"
-          }
-        },
-        "globals": {
-          "version": "12.4.0",
-          "resolved": "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz?cache=0&sync_timestamp=1617957623227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-12.4.0.tgz",
-          "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=",
-          "dev": true,
-          "requires": {
-            "type-fest": "^0.8.1"
-          }
-        },
-        "import-fresh": {
-          "version": "3.3.0",
-          "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.3.0.tgz?cache=0&sync_timestamp=1608469561643&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.3.0.tgz",
-          "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=",
-          "dev": true,
-          "requires": {
-            "parent-module": "^1.0.0",
-            "resolve-from": "^4.0.0"
-          }
-        },
-        "resolve-from": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz",
-          "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
-          "dev": true
-        },
-        "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-          "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^4.1.0"
-          }
-        },
-        "type-fest": {
-          "version": "0.8.1",
-          "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.8.1.tgz",
-          "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-config-standard": {
-      "version": "14.1.1",
-      "resolved": "https://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-14.1.1.tgz?cache=0&sync_timestamp=1605664520005&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-standard%2Fdownload%2Feslint-config-standard-14.1.1.tgz",
-      "integrity": "sha1-gwqOROeu995nRkl5rQa0BgJsVuo=",
-      "dev": true
-    },
-    "eslint-import-resolver-node": {
-      "version": "0.3.4",
-      "resolved": "https://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.4.tgz?cache=0&sync_timestamp=1592327223893&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-import-resolver-node%2Fdownload%2Feslint-import-resolver-node-0.3.4.tgz",
-      "integrity": "sha1-hf+oGULCUBLYIxCW3fZ5wDBCxxc=",
-      "dev": true,
-      "requires": {
-        "debug": "^2.6.9",
-        "resolve": "^1.13.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-import-resolver-webpack": {
-      "version": "0.12.2",
-      "resolved": "https://registry.nlark.com/eslint-import-resolver-webpack/download/eslint-import-resolver-webpack-0.12.2.tgz",
-      "integrity": "sha1-dp6GzQx1KhU2wZhV69kKoUzjhO4=",
-      "dev": true,
-      "requires": {
-        "array-find": "^1.0.0",
-        "debug": "^2.6.9",
-        "enhanced-resolve": "^0.9.1",
-        "find-root": "^1.1.0",
-        "has": "^1.0.3",
-        "interpret": "^1.2.0",
-        "lodash": "^4.17.15",
-        "node-libs-browser": "^1.0.0 || ^2.0.0",
-        "resolve": "^1.13.1",
-        "semver": "^5.7.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "enhanced-resolve": {
-          "version": "0.9.1",
-          "resolved": "https://registry.nlark.com/enhanced-resolve/download/enhanced-resolve-0.9.1.tgz",
-          "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "memory-fs": "^0.2.0",
-            "tapable": "^0.1.8"
-          }
-        },
-        "memory-fs": {
-          "version": "0.2.0",
-          "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.2.0.tgz",
-          "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        },
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
-          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
-          "dev": true
-        },
-        "tapable": {
-          "version": "0.1.10",
-          "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-0.1.10.tgz?cache=0&sync_timestamp=1607088905649&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-0.1.10.tgz",
-          "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-loader": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.2.1.tgz?cache=0&sync_timestamp=1601214436656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-loader%2Fdownload%2Feslint-loader-2.2.1.tgz",
-      "integrity": "sha1-KLnBLaVAV68IReKmEScBova/gzc=",
-      "dev": true,
-      "requires": {
-        "loader-fs-cache": "^1.0.0",
-        "loader-utils": "^1.0.2",
-        "object-assign": "^4.0.1",
-        "object-hash": "^1.1.4",
-        "rimraf": "^2.6.1"
-      }
-    },
-    "eslint-module-utils": {
-      "version": "2.6.1",
-      "resolved": "https://registry.nlark.com/eslint-module-utils/download/eslint-module-utils-2.6.1.tgz?cache=0&sync_timestamp=1620972429711&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-module-utils%2Fdownload%2Feslint-module-utils-2.6.1.tgz",
-      "integrity": "sha1-tRvh5HPdDeHF6mOOIkKcJJDqgjM=",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.7",
-        "pkg-dir": "^2.0.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz",
-          "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "find-up": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
-          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
-          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^2.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606290276843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
-          "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
-          "dev": true,
-          "requires": {
-            "p-try": "^1.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
-          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^1.1.0"
-          }
-        },
-        "p-try": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
-          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
-          "dev": true
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        },
-        "pkg-dir": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-2.0.0.tgz",
-          "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
-          "dev": true,
-          "requires": {
-            "find-up": "^2.1.0"
-          }
-        }
-      }
-    },
-    "eslint-plugin-es": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/eslint-plugin-es/download/eslint-plugin-es-3.0.1.tgz?cache=0&sync_timestamp=1605769812592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-es%2Fdownload%2Feslint-plugin-es-3.0.1.tgz",
-      "integrity": "sha1-dafN/czdwFiZNK7rOEF18iHFeJM=",
-      "dev": true,
-      "requires": {
-        "eslint-utils": "^2.0.0",
-        "regexpp": "^3.0.0"
-      },
-      "dependencies": {
-        "eslint-utils": {
-          "version": "2.1.0",
-          "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz",
-          "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=",
-          "dev": true,
-          "requires": {
-            "eslint-visitor-keys": "^1.1.0"
-          }
-        },
-        "regexpp": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-3.1.0.tgz",
-          "integrity": "sha1-IG0K0KVkjP+9uK5GQ489xRyfeOI=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-plugin-import": {
-      "version": "2.23.1",
-      "resolved": "https://registry.nlark.com/eslint-plugin-import/download/eslint-plugin-import-2.23.1.tgz",
-      "integrity": "sha1-wT/97p9XIOlDL6fomcIi+iWXhjY=",
-      "dev": true,
-      "requires": {
-        "array-includes": "^3.1.3",
-        "array.prototype.flat": "^1.2.4",
-        "contains-path": "^1.0.0",
-        "debug": "^2.6.9",
-        "doctrine": "^2.1.0",
-        "eslint-import-resolver-node": "^0.3.4",
-        "eslint-module-utils": "^2.6.1",
-        "find-up": "^2.0.0",
-        "has": "^1.0.3",
-        "is-core-module": "^2.4.0",
-        "minimatch": "^3.0.4",
-        "object.values": "^1.1.3",
-        "pkg-up": "^2.0.0",
-        "read-pkg-up": "^3.0.0",
-        "resolve": "^1.20.0",
-        "tsconfig-paths": "^3.9.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "doctrine": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz",
-          "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=",
-          "dev": true,
-          "requires": {
-            "esutils": "^2.0.2"
-          }
-        },
-        "find-up": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
-          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
-          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^2.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        },
-        "p-limit": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606290276843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
-          "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
-          "dev": true,
-          "requires": {
-            "p-try": "^1.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
-          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^1.1.0"
-          }
-        },
-        "p-try": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
-          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
-          "dev": true
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-plugin-node": {
-      "version": "11.1.0",
-      "resolved": "https://registry.npm.taobao.org/eslint-plugin-node/download/eslint-plugin-node-11.1.0.tgz?cache=0&sync_timestamp=1585396050025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-node%2Fdownload%2Feslint-plugin-node-11.1.0.tgz",
-      "integrity": "sha1-yVVEQW7kraJnQKMEdO78VALcZx0=",
-      "dev": true,
-      "requires": {
-        "eslint-plugin-es": "^3.0.0",
-        "eslint-utils": "^2.0.0",
-        "ignore": "^5.1.1",
-        "minimatch": "^3.0.4",
-        "resolve": "^1.10.1",
-        "semver": "^6.1.0"
-      },
-      "dependencies": {
-        "eslint-utils": {
-          "version": "2.1.0",
-          "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-2.1.0.tgz",
-          "integrity": "sha1-0t5eA0JOcH3BDHQGjd7a5wh0Gyc=",
-          "dev": true,
-          "requires": {
-            "eslint-visitor-keys": "^1.1.0"
-          }
-        },
-        "ignore": {
-          "version": "5.1.8",
-          "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-5.1.8.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz",
-          "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-plugin-promise": {
-      "version": "4.3.1",
-      "resolved": "https://registry.nlark.com/eslint-plugin-promise/download/eslint-plugin-promise-4.3.1.tgz",
-      "integrity": "sha1-YUhd8qNZ4DFJ/a/AposOAwrSrEU=",
-      "dev": true
-    },
-    "eslint-plugin-standard": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-4.1.0.tgz?cache=0&sync_timestamp=1606091897901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-standard%2Fdownload%2Feslint-plugin-standard-4.1.0.tgz",
-      "integrity": "sha1-DDvzpn6FP4u7xYD7SUX78W9Bt8U=",
-      "dev": true
-    },
-    "eslint-plugin-vue": {
-      "version": "6.2.2",
-      "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-6.2.2.tgz?cache=0&sync_timestamp=1618213533393&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-6.2.2.tgz",
-      "integrity": "sha1-J/7NmjokeJsPER7N1UCp5WGY4P4=",
-      "dev": true,
-      "requires": {
-        "natural-compare": "^1.4.0",
-        "semver": "^5.6.0",
-        "vue-eslint-parser": "^7.0.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
-          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
-          "dev": true
-        }
-      }
-    },
-    "eslint-scope": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz?cache=0&sync_timestamp=1599933651660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-4.0.3.tgz",
-      "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=",
-      "dev": true,
-      "requires": {
-        "esrecurse": "^4.1.0",
-        "estraverse": "^4.1.1"
-      }
-    },
-    "eslint-utils": {
-      "version": "1.4.3",
-      "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-1.4.3.tgz",
-      "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=",
-      "dev": true,
-      "requires": {
-        "eslint-visitor-keys": "^1.1.0"
-      }
-    },
-    "eslint-visitor-keys": {
-      "version": "1.3.0",
-      "resolved": "https://registry.nlark.com/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1620088667316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz",
-      "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=",
-      "dev": true
-    },
-    "espree": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz?cache=0&sync_timestamp=1607143966756&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.2.1.tgz",
-      "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=",
-      "dev": true,
-      "requires": {
-        "acorn": "^7.1.1",
-        "acorn-jsx": "^5.2.0",
-        "eslint-visitor-keys": "^1.1.0"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "7.4.1",
-          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1620134123724&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
-          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
-          "dev": true
-        }
-      }
-    },
-    "esprima": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz",
-      "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=",
-      "dev": true
-    },
-    "esquery": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.4.0.tgz?cache=0&sync_timestamp=1612565616129&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.4.0.tgz",
-      "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=",
-      "dev": true,
-      "requires": {
-        "estraverse": "^5.1.0"
-      },
-      "dependencies": {
-        "estraverse": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz",
-          "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=",
-          "dev": true
-        }
-      }
-    },
-    "esrecurse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.3.0.tgz?cache=0&sync_timestamp=1598898255610&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesrecurse%2Fdownload%2Fesrecurse-4.3.0.tgz",
-      "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=",
-      "dev": true,
-      "requires": {
-        "estraverse": "^5.2.0"
-      },
-      "dependencies": {
-        "estraverse": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz",
-          "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=",
-          "dev": true
-        }
-      }
-    },
-    "estraverse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz",
-      "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=",
-      "dev": true
-    },
-    "esutils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz",
-      "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=",
-      "dev": true
-    },
-    "etag": {
-      "version": "1.8.1",
-      "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz",
-      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
-      "dev": true
-    },
-    "event-pubsub": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz?cache=0&sync_timestamp=1606361475552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevent-pubsub%2Fdownload%2Fevent-pubsub-4.3.0.tgz",
-      "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=",
-      "dev": true
-    },
-    "eventemitter3": {
-      "version": "4.0.7",
-      "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.7.tgz?cache=0&sync_timestamp=1598517728928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.7.tgz",
-      "integrity": "sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=",
-      "dev": true
-    },
-    "events": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npm.taobao.org/events/download/events-3.3.0.tgz?cache=0&sync_timestamp=1614446722579&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.3.0.tgz",
-      "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=",
-      "dev": true
-    },
-    "eventsource": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.1.0.tgz?cache=0&sync_timestamp=1616041716084&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventsource%2Fdownload%2Feventsource-1.1.0.tgz",
-      "integrity": "sha1-AOjKfJIQnpSw3fMtrGd9hBAoz68=",
-      "dev": true,
-      "requires": {
-        "original": "^1.0.0"
-      }
-    },
-    "evp_bytestokey": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz",
-      "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=",
-      "dev": true,
-      "requires": {
-        "md5.js": "^1.3.4",
-        "safe-buffer": "^5.1.1"
-      }
-    },
-    "execa": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1606971018065&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz",
-      "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=",
-      "dev": true,
-      "requires": {
-        "cross-spawn": "^6.0.0",
-        "get-stream": "^4.0.0",
-        "is-stream": "^1.1.0",
-        "npm-run-path": "^2.0.0",
-        "p-finally": "^1.0.0",
-        "signal-exit": "^3.0.0",
-        "strip-eof": "^1.0.0"
-      }
-    },
-    "expand-brackets": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz",
-      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
-      "dev": true,
-      "requires": {
-        "debug": "^2.3.3",
-        "define-property": "^0.2.5",
-        "extend-shallow": "^2.0.1",
-        "posix-character-classes": "^0.1.0",
-        "regex-not": "^1.0.0",
-        "snapdragon": "^0.8.1",
-        "to-regex": "^3.0.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "express": {
-      "version": "4.17.1",
-      "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz",
-      "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.7",
-        "array-flatten": "1.1.1",
-        "body-parser": "1.19.0",
-        "content-disposition": "0.5.3",
-        "content-type": "~1.0.4",
-        "cookie": "0.4.0",
-        "cookie-signature": "1.0.6",
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "finalhandler": "~1.1.2",
-        "fresh": "0.5.2",
-        "merge-descriptors": "1.0.1",
-        "methods": "~1.1.2",
-        "on-finished": "~2.3.0",
-        "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.7",
-        "proxy-addr": "~2.0.5",
-        "qs": "6.7.0",
-        "range-parser": "~1.2.1",
-        "safe-buffer": "5.1.2",
-        "send": "0.17.1",
-        "serve-static": "1.14.1",
-        "setprototypeof": "1.1.1",
-        "statuses": "~1.5.0",
-        "type-is": "~1.6.18",
-        "utils-merge": "1.0.1",
-        "vary": "~1.1.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        },
-        "qs": {
-          "version": "6.7.0",
-          "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz",
-          "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=",
-          "dev": true
-        }
-      }
-    },
-    "extend": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz",
-      "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=",
-      "dev": true
-    },
-    "extend-shallow": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz",
-      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
-      "dev": true,
-      "requires": {
-        "assign-symbols": "^1.0.0",
-        "is-extendable": "^1.0.1"
-      },
-      "dependencies": {
-        "is-extendable": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
-          "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
-          "dev": true,
-          "requires": {
-            "is-plain-object": "^2.0.4"
-          }
-        }
-      }
-    },
-    "external-editor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-3.1.0.tgz",
-      "integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=",
-      "dev": true,
-      "requires": {
-        "chardet": "^0.7.0",
-        "iconv-lite": "^0.4.24",
-        "tmp": "^0.0.33"
-      }
-    },
-    "extglob": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz",
-      "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=",
-      "dev": true,
-      "requires": {
-        "array-unique": "^0.3.2",
-        "define-property": "^1.0.0",
-        "expand-brackets": "^2.1.4",
-        "extend-shallow": "^2.0.1",
-        "fragment-cache": "^0.2.1",
-        "regex-not": "^1.0.0",
-        "snapdragon": "^0.8.1",
-        "to-regex": "^3.0.1"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
-          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "extsprintf": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
-      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
-      "dev": true
-    },
-    "fast-deep-equal": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599697571&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz",
-      "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=",
-      "dev": true
-    },
-    "fast-glob": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz?cache=0&sync_timestamp=1610876505711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-2.2.7.tgz",
-      "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=",
-      "dev": true,
-      "requires": {
-        "@mrmlnc/readdir-enhanced": "^2.2.1",
-        "@nodelib/fs.stat": "^1.1.2",
-        "glob-parent": "^3.1.0",
-        "is-glob": "^4.0.0",
-        "merge2": "^1.2.3",
-        "micromatch": "^3.1.10"
-      },
-      "dependencies": {
-        "glob-parent": {
-          "version": "3.1.0",
-          "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz",
-          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^3.1.0",
-            "path-dirname": "^1.0.0"
-          },
-          "dependencies": {
-            "is-glob": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
-              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-              "dev": true,
-              "requires": {
-                "is-extglob": "^2.1.0"
-              }
-            }
-          }
-        }
-      }
-    },
-    "fast-json-stable-stringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz",
-      "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=",
-      "dev": true
-    },
-    "fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-      "dev": true
-    },
-    "fastq": {
-      "version": "1.11.0",
-      "resolved": "https://registry.npm.taobao.org/fastq/download/fastq-1.11.0.tgz?cache=0&sync_timestamp=1614183822444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffastq%2Fdownload%2Ffastq-1.11.0.tgz",
-      "integrity": "sha1-u5+5VaBxMKkY62PB9RYcwypdCFg=",
-      "dev": true,
-      "requires": {
-        "reusify": "^1.0.4"
-      }
-    },
-    "faye-websocket": {
-      "version": "0.11.3",
-      "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz",
-      "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=",
-      "dev": true,
-      "requires": {
-        "websocket-driver": ">=0.5.1"
-      }
-    },
-    "figgy-pudding": {
-      "version": "3.5.2",
-      "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz",
-      "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=",
-      "dev": true
-    },
-    "figures": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz?cache=0&sync_timestamp=1581865349068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-3.2.0.tgz",
-      "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "^1.0.5"
-      }
-    },
-    "file-entry-cache": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz?cache=0&sync_timestamp=1613794272556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-5.0.1.tgz",
-      "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=",
-      "dev": true,
-      "requires": {
-        "flat-cache": "^2.0.1"
-      }
-    },
-    "file-loader": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1603816843418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz",
-      "integrity": "sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.2.3",
-        "schema-utils": "^2.5.0"
-      }
-    },
-    "file-uri-to-path": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz",
-      "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=",
-      "dev": true,
-      "optional": true
-    },
-    "filesize": {
-      "version": "3.6.1",
-      "resolved": "https://registry.nlark.com/filesize/download/filesize-3.6.1.tgz",
-      "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=",
-      "dev": true
-    },
-    "fill-range": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
-      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-      "dev": true,
-      "requires": {
-        "extend-shallow": "^2.0.1",
-        "is-number": "^3.0.0",
-        "repeat-string": "^1.6.1",
-        "to-regex-range": "^2.1.0"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
-      }
-    },
-    "finalhandler": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz",
-      "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "on-finished": "~2.3.0",
-        "parseurl": "~1.3.3",
-        "statuses": "~1.5.0",
-        "unpipe": "~1.0.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "find-cache-dir": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz",
-      "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=",
-      "dev": true,
-      "requires": {
-        "commondir": "^1.0.1",
-        "make-dir": "^3.0.2",
-        "pkg-dir": "^4.1.0"
-      }
-    },
-    "find-root": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/find-root/download/find-root-1.1.0.tgz",
-      "integrity": "sha1-q8/Iunb3CMQql7PWhbfpRQv7nOQ=",
-      "dev": true
-    },
-    "find-up": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
-      "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
-      "dev": true,
-      "requires": {
-        "locate-path": "^5.0.0",
-        "path-exists": "^4.0.0"
-      }
-    },
-    "flat-cache": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz?cache=0&sync_timestamp=1604831838291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflat-cache%2Fdownload%2Fflat-cache-2.0.1.tgz",
-      "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=",
-      "dev": true,
-      "requires": {
-        "flatted": "^2.0.0",
-        "rimraf": "2.6.3",
-        "write": "1.0.3"
-      },
-      "dependencies": {
-        "rimraf": {
-          "version": "2.6.3",
-          "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz",
-          "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=",
-          "dev": true,
-          "requires": {
-            "glob": "^7.1.3"
-          }
-        }
-      }
-    },
-    "flatted": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz?cache=0&sync_timestamp=1611059462226&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fflatted%2Fdownload%2Fflatted-2.0.2.tgz",
-      "integrity": "sha1-RXWyHivO50NKqb5mL0t7X5wrUTg=",
-      "dev": true
-    },
-    "flush-write-stream": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz",
-      "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.3",
-        "readable-stream": "^2.3.6"
-      }
-    },
-    "follow-redirects": {
-      "version": "1.14.1",
-      "resolved": "https://registry.nlark.com/follow-redirects/download/follow-redirects-1.14.1.tgz?cache=0&sync_timestamp=1620555292056&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.14.1.tgz",
-      "integrity": "sha1-2RFN7Qoc/dM04WTmZirQK/2R/0M="
-    },
-    "for-in": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz",
-      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
-      "dev": true
-    },
-    "forever-agent": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
-      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
-      "dev": true
-    },
-    "form-data": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz",
-      "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=",
-      "dev": true,
-      "requires": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.6",
-        "mime-types": "^2.1.12"
-      }
-    },
-    "forwarded": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz",
-      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
-      "dev": true
-    },
-    "fragment-cache": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz",
-      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
-      "dev": true,
-      "requires": {
-        "map-cache": "^0.2.2"
-      }
-    },
-    "fresh": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz",
-      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
-      "dev": true
-    },
-    "from2": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz",
-      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.0.0"
-      }
-    },
-    "fs-extra": {
-      "version": "7.0.1",
-      "resolved": "https://registry.nlark.com/fs-extra/download/fs-extra-7.0.1.tgz",
-      "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "jsonfile": "^4.0.0",
-        "universalify": "^0.1.0"
-      }
-    },
-    "fs-write-stream-atomic": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz",
-      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "iferr": "^0.1.5",
-        "imurmurhash": "^0.1.4",
-        "readable-stream": "1 || 2"
-      }
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-      "dev": true
-    },
-    "fsevents": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz",
-      "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
-      "dev": true,
-      "optional": true
-    },
-    "fstream": {
-      "version": "1.0.12",
-      "resolved": "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz",
-      "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "inherits": "~2.0.0",
-        "mkdirp": ">=0.5 0",
-        "rimraf": "2"
-      }
-    },
-    "function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
-      "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
-      "dev": true
-    },
-    "functional-red-black-tree": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz",
-      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
-      "dev": true
-    },
-    "fuzzysearch": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/fuzzysearch/download/fuzzysearch-1.0.3.tgz",
-      "integrity": "sha1-3/yA9tawQiPyImqnndGUIxCW0Ag="
-    },
-    "gauge": {
-      "version": "2.7.4",
-      "resolved": "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz",
-      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.0.3",
-        "console-control-strings": "^1.0.0",
-        "has-unicode": "^2.0.0",
-        "object-assign": "^4.1.0",
-        "signal-exit": "^3.0.0",
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1",
-        "wide-align": "^1.1.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-          "dev": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz",
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-          "dev": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        }
-      }
-    },
-    "gaze": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz",
-      "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=",
-      "dev": true,
-      "requires": {
-        "globule": "^1.0.0"
-      }
-    },
-    "gensync": {
-      "version": "1.0.0-beta.2",
-      "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.2.tgz?cache=0&sync_timestamp=1603831745943&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgensync%2Fdownload%2Fgensync-1.0.0-beta.2.tgz",
-      "integrity": "sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=",
-      "dev": true
-    },
-    "get-caller-file": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz",
-      "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=",
-      "dev": true
-    },
-    "get-intrinsic": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz",
-      "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.1"
-      }
-    },
-    "get-own-enumerable-property-symbols": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz",
-      "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=",
-      "dev": true
-    },
-    "get-stdin": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz?cache=0&sync_timestamp=1618557624027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-4.0.1.tgz",
-      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
-      "dev": true
-    },
-    "get-stream": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz",
-      "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=",
-      "dev": true,
-      "requires": {
-        "pump": "^3.0.0"
-      }
-    },
-    "get-value": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz",
-      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
-      "dev": true
-    },
-    "getpass": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
-      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0"
-      }
-    },
-    "glob": {
-      "version": "7.1.7",
-      "resolved": "https://registry.nlark.com/glob/download/glob-7.1.7.tgz?cache=0&sync_timestamp=1620337382269&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglob%2Fdownload%2Fglob-7.1.7.tgz",
-      "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
-      "dev": true,
-      "requires": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.0.4",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
-      }
-    },
-    "glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-5.1.2.tgz",
-      "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
-      "dev": true,
-      "requires": {
-        "is-glob": "^4.0.1"
-      }
-    },
-    "glob-to-regexp": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz",
-      "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
-      "dev": true
-    },
-    "globals": {
-      "version": "11.12.0",
-      "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz?cache=0&sync_timestamp=1617957623227&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobals%2Fdownload%2Fglobals-11.12.0.tgz",
-      "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=",
-      "dev": true
-    },
-    "globby": {
-      "version": "9.2.0",
-      "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-9.2.0.tgz",
-      "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=",
-      "dev": true,
-      "requires": {
-        "@types/glob": "^7.1.1",
-        "array-union": "^1.0.2",
-        "dir-glob": "^2.2.2",
-        "fast-glob": "^2.2.6",
-        "glob": "^7.1.3",
-        "ignore": "^4.0.3",
-        "pify": "^4.0.1",
-        "slash": "^2.0.0"
-      }
-    },
-    "globule": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz?cache=0&sync_timestamp=1591644214501&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobule%2Fdownload%2Fglobule-1.3.2.tgz",
-      "integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=",
-      "dev": true,
-      "requires": {
-        "glob": "~7.1.1",
-        "lodash": "~4.17.10",
-        "minimatch": "~3.0.2"
-      }
-    },
-    "good-listener": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz",
-      "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
-      "requires": {
-        "delegate": "^3.1.2"
-      }
-    },
-    "graceful-fs": {
-      "version": "4.2.6",
-      "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.6.tgz",
-      "integrity": "sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4=",
-      "dev": true
-    },
-    "gzip-size": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz?cache=0&sync_timestamp=1605523125680&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgzip-size%2Fdownload%2Fgzip-size-5.1.1.tgz",
-      "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=",
-      "dev": true,
-      "requires": {
-        "duplexer": "^0.1.1",
-        "pify": "^4.0.1"
-      }
-    },
-    "handle-thing": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz",
-      "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=",
-      "dev": true
-    },
-    "har-schema": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
-      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-      "dev": true
-    },
-    "har-validator": {
-      "version": "5.1.5",
-      "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.5.tgz?cache=0&sync_timestamp=1596082584903&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhar-validator%2Fdownload%2Fhar-validator-5.1.5.tgz",
-      "integrity": "sha1-HwgDufjLIMD6E4It8ezds2veHv0=",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.12.3",
-        "har-schema": "^2.0.0"
-      }
-    },
-    "has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz",
-      "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1"
-      }
-    },
-    "has-ansi": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz",
-      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        }
-      }
-    },
-    "has-bigints": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/has-bigints/download/has-bigints-1.0.1.tgz?cache=0&sync_timestamp=1615461427142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-bigints%2Fdownload%2Fhas-bigints-1.0.1.tgz",
-      "integrity": "sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=",
-      "dev": true
-    },
-    "has-flag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz",
-      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-      "dev": true
-    },
-    "has-symbols": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443557459&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz",
-      "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=",
-      "dev": true
-    },
-    "has-unicode": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz",
-      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
-      "dev": true
-    },
-    "has-value": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz",
-      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
-      "dev": true,
-      "requires": {
-        "get-value": "^2.0.6",
-        "has-values": "^1.0.0",
-        "isobject": "^3.0.0"
-      }
-    },
-    "has-values": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz",
-      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
-      "dev": true,
-      "requires": {
-        "is-number": "^3.0.0",
-        "kind-of": "^4.0.0"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz",
-          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "hash-base": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz",
-      "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.4",
-        "readable-stream": "^3.6.0",
-        "safe-buffer": "^5.2.0"
-      },
-      "dependencies": {
-        "readable-stream": {
-          "version": "3.6.0",
-          "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz",
-          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
-          "dev": true,
-          "requires": {
-            "inherits": "^2.0.3",
-            "string_decoder": "^1.1.1",
-            "util-deprecate": "^1.0.1"
-          }
-        },
-        "safe-buffer": {
-          "version": "5.2.1",
-          "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz",
-          "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=",
-          "dev": true
-        }
-      }
-    },
-    "hash-sum": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-2.0.0.tgz",
-      "integrity": "sha1-gdAbtd6OpKIUrV1urRtSNGCwtFo=",
-      "dev": true
-    },
-    "hash.js": {
-      "version": "1.1.7",
-      "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz",
-      "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.3",
-        "minimalistic-assert": "^1.0.1"
-      }
-    },
-    "he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz",
-      "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=",
-      "dev": true
-    },
-    "hex-color-regex": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz",
-      "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=",
-      "dev": true
-    },
-    "highlight.js": {
-      "version": "10.7.2",
-      "resolved": "https://registry.nlark.com/highlight.js/download/highlight.js-10.7.2.tgz",
-      "integrity": "sha1-iTGbhh7cZsSIVO0ebaIeqJ+Ec2A=",
-      "dev": true
-    },
-    "hmac-drbg": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz",
-      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
-      "dev": true,
-      "requires": {
-        "hash.js": "^1.0.3",
-        "minimalistic-assert": "^1.0.0",
-        "minimalistic-crypto-utils": "^1.0.1"
-      }
-    },
-    "hoopy": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz",
-      "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=",
-      "dev": true
-    },
-    "hosted-git-info": {
-      "version": "2.8.9",
-      "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.9.tgz?cache=0&sync_timestamp=1617826541967&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.9.tgz",
-      "integrity": "sha1-3/wL+aIcAiCQkPKqaUKeFBTa8/k=",
-      "dev": true
-    },
-    "hpack.js": {
-      "version": "2.1.6",
-      "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz",
-      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "obuf": "^1.0.0",
-        "readable-stream": "^2.0.1",
-        "wbuf": "^1.1.0"
-      }
-    },
-    "hsl-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz",
-      "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
-      "dev": true
-    },
-    "hsla-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz",
-      "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
-      "dev": true
-    },
-    "html-entities": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.4.0.tgz?cache=0&sync_timestamp=1617031553039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-entities%2Fdownload%2Fhtml-entities-1.4.0.tgz",
-      "integrity": "sha1-z70bAdKvr5rcobEK59/6uYxx0tw=",
-      "dev": true
-    },
-    "html-minifier": {
-      "version": "3.5.21",
-      "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz",
-      "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=",
-      "dev": true,
-      "requires": {
-        "camel-case": "3.0.x",
-        "clean-css": "4.2.x",
-        "commander": "2.17.x",
-        "he": "1.2.x",
-        "param-case": "2.1.x",
-        "relateurl": "0.2.x",
-        "uglify-js": "3.4.x"
-      },
-      "dependencies": {
-        "commander": {
-          "version": "2.17.1",
-          "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1616364009866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz",
-          "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=",
-          "dev": true
-        }
-      }
-    },
-    "html-tags": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-3.1.0.tgz",
-      "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=",
-      "dev": true
-    },
-    "html-webpack-plugin": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1615296040860&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz",
-      "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
-      "dev": true,
-      "requires": {
-        "html-minifier": "^3.2.3",
-        "loader-utils": "^0.2.16",
-        "lodash": "^4.17.3",
-        "pretty-error": "^2.0.2",
-        "tapable": "^1.0.0",
-        "toposort": "^1.0.0",
-        "util.promisify": "1.0.0"
-      },
-      "dependencies": {
-        "big.js": {
-          "version": "3.2.0",
-          "resolved": "https://registry.nlark.com/big.js/download/big.js-3.2.0.tgz?cache=0&sync_timestamp=1620132748267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbig.js%2Fdownload%2Fbig.js-3.2.0.tgz",
-          "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=",
-          "dev": true
-        },
-        "emojis-list": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz",
-          "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
-          "dev": true
-        },
-        "json5": {
-          "version": "0.5.1",
-          "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz",
-          "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
-          "dev": true
-        },
-        "loader-utils": {
-          "version": "0.2.17",
-          "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-0.2.17.tgz",
-          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
-          "dev": true,
-          "requires": {
-            "big.js": "^3.1.3",
-            "emojis-list": "^2.0.0",
-            "json5": "^0.5.0",
-            "object-assign": "^4.0.1"
-          }
-        },
-        "util.promisify": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&sync_timestamp=1610159895694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz",
-          "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=",
-          "dev": true,
-          "requires": {
-            "define-properties": "^1.1.2",
-            "object.getownpropertydescriptors": "^2.0.3"
-          }
-        }
-      }
-    },
-    "htmlparser2": {
-      "version": "3.10.1",
-      "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1617914940336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz",
-      "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "^1.3.1",
-        "domhandler": "^2.3.0",
-        "domutils": "^1.5.1",
-        "entities": "^1.1.1",
-        "inherits": "^2.0.1",
-        "readable-stream": "^3.1.1"
-      },
-      "dependencies": {
-        "entities": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz",
-          "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=",
-          "dev": true
-        },
-        "readable-stream": {
-          "version": "3.6.0",
-          "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz",
-          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
-          "dev": true,
-          "requires": {
-            "inherits": "^2.0.3",
-            "string_decoder": "^1.1.1",
-            "util-deprecate": "^1.0.1"
-          }
-        }
-      }
-    },
-    "http-deceiver": {
-      "version": "1.2.7",
-      "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz",
-      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
-      "dev": true
-    },
-    "http-errors": {
-      "version": "1.7.2",
-      "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407676624&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz",
-      "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=",
-      "dev": true,
-      "requires": {
-        "depd": "~1.1.2",
-        "inherits": "2.0.3",
-        "setprototypeof": "1.1.1",
-        "statuses": ">= 1.5.0 < 2",
-        "toidentifier": "1.0.0"
-      },
-      "dependencies": {
-        "inherits": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
-          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-          "dev": true
-        }
-      }
-    },
-    "http-parser-js": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.3.tgz",
-      "integrity": "sha1-AdJwnHnUFpi7AdTezF6dpOSgM9k=",
-      "dev": true
-    },
-    "http-proxy": {
-      "version": "1.18.1",
-      "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy%2Fdownload%2Fhttp-proxy-1.18.1.tgz",
-      "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=",
-      "dev": true,
-      "requires": {
-        "eventemitter3": "^4.0.0",
-        "follow-redirects": "^1.0.0",
-        "requires-port": "^1.0.0"
-      }
-    },
-    "http-proxy-middleware": {
-      "version": "1.3.1",
-      "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-1.3.1.tgz",
-      "integrity": "sha1-Q3ANbZ7st0Gb8IahKND3IF2etmU=",
-      "dev": true,
-      "requires": {
-        "@types/http-proxy": "^1.17.5",
-        "http-proxy": "^1.18.1",
-        "is-glob": "^4.0.1",
-        "is-plain-obj": "^3.0.0",
-        "micromatch": "^4.0.2"
-      },
-      "dependencies": {
-        "braces": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
-          "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
-          "dev": true,
-          "requires": {
-            "fill-range": "^7.0.1"
-          }
-        },
-        "fill-range": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
-          "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
-          "dev": true,
-          "requires": {
-            "to-regex-range": "^5.0.1"
-          }
-        },
-        "is-number": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
-          "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
-          "dev": true
-        },
-        "micromatch": {
-          "version": "4.0.4",
-          "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz",
-          "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=",
-          "dev": true,
-          "requires": {
-            "braces": "^3.0.1",
-            "picomatch": "^2.2.3"
-          }
-        },
-        "to-regex-range": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
-          "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
-          "dev": true,
-          "requires": {
-            "is-number": "^7.0.0"
-          }
-        }
-      }
-    },
-    "http-signature": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1600868452638&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz",
-      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0",
-        "jsprim": "^1.2.2",
-        "sshpk": "^1.7.0"
-      }
-    },
-    "https-browserify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz",
-      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
-      "dev": true
-    },
-    "human-signals": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584198662293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz",
-      "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=",
-      "dev": true
-    },
-    "iconv-lite": {
-      "version": "0.4.24",
-      "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1594184264130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz",
-      "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
-      "dev": true,
-      "requires": {
-        "safer-buffer": ">= 2.1.2 < 3"
-      }
-    },
-    "icss-utils": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz?cache=0&sync_timestamp=1605801291394&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficss-utils%2Fdownload%2Ficss-utils-4.1.1.tgz",
-      "integrity": "sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.14"
-      }
-    },
-    "ieee754": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.2.1.tgz?cache=0&sync_timestamp=1603838208740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fieee754%2Fdownload%2Fieee754-1.2.1.tgz",
-      "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=",
-      "dev": true
-    },
-    "iferr": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz",
-      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
-      "dev": true
-    },
-    "ignore": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz",
-      "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
-      "dev": true
-    },
-    "import-cwd": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz",
-      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
-      "dev": true,
-      "requires": {
-        "import-from": "^2.1.0"
-      }
-    },
-    "import-fresh": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1608469561643&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz",
-      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
-      "dev": true,
-      "requires": {
-        "caller-path": "^2.0.0",
-        "resolve-from": "^3.0.0"
-      }
-    },
-    "import-from": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz",
-      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
-      "dev": true,
-      "requires": {
-        "resolve-from": "^3.0.0"
-      }
-    },
-    "import-local": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz",
-      "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=",
-      "dev": true,
-      "requires": {
-        "pkg-dir": "^3.0.0",
-        "resolve-cwd": "^2.0.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
-          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
-          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
-          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        },
-        "pkg-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz",
-          "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0"
-          }
-        }
-      }
-    },
-    "imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
-      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
-      "dev": true
-    },
-    "in-publish": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz?cache=0&sync_timestamp=1584388407299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fin-publish%2Fdownload%2Fin-publish-2.0.1.tgz",
-      "integrity": "sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw=",
-      "dev": true
-    },
-    "indent-string": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz?cache=0&sync_timestamp=1618679561483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-4.0.0.tgz",
-      "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=",
-      "dev": true
-    },
-    "indexes-of": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz",
-      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
-      "dev": true
-    },
-    "infer-owner": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz",
-      "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=",
-      "dev": true
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-      "dev": true,
-      "requires": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz",
-      "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=",
-      "dev": true
-    },
-    "inquirer": {
-      "version": "7.3.3",
-      "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.3.3.tgz",
-      "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.1.0",
-        "cli-cursor": "^3.1.0",
-        "cli-width": "^3.0.0",
-        "external-editor": "^3.0.3",
-        "figures": "^3.0.0",
-        "lodash": "^4.17.19",
-        "mute-stream": "0.0.8",
-        "run-async": "^2.4.0",
-        "rxjs": "^6.6.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0",
-        "through": "^2.3.6"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
-          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
-          "dev": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.1",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
-          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "cli-cursor": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz",
-          "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=",
-          "dev": true,
-          "requires": {
-            "restore-cursor": "^3.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
-          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
-          "dev": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
-          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
-          "dev": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
-          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
-          "dev": true
-        },
-        "mimic-fn": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1617823583529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz",
-          "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=",
-          "dev": true
-        },
-        "onetime": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz",
-          "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=",
-          "dev": true,
-          "requires": {
-            "mimic-fn": "^2.1.0"
-          }
-        },
-        "restore-cursor": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz",
-          "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=",
-          "dev": true,
-          "requires": {
-            "onetime": "^5.1.0",
-            "signal-exit": "^3.0.2"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
-          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
-          "dev": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "internal-ip": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1605885528721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz",
-      "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=",
-      "dev": true,
-      "requires": {
-        "default-gateway": "^4.2.0",
-        "ipaddr.js": "^1.9.0"
-      },
-      "dependencies": {
-        "default-gateway": {
-          "version": "4.2.0",
-          "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1610365857779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz",
-          "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=",
-          "dev": true,
-          "requires": {
-            "execa": "^1.0.0",
-            "ip-regex": "^2.1.0"
-          }
-        }
-      }
-    },
-    "interpret": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz?cache=0&sync_timestamp=1591167206134&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finterpret%2Fdownload%2Finterpret-1.4.0.tgz",
-      "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=",
-      "dev": true
-    },
-    "ip": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz",
-      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
-      "dev": true
-    },
-    "ip-regex": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz?cache=0&sync_timestamp=1611327032630&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fip-regex%2Fdownload%2Fip-regex-2.1.0.tgz",
-      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
-      "dev": true
-    },
-    "ipaddr.js": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz",
-      "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=",
-      "dev": true
-    },
-    "is-absolute-url": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz",
-      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
-      "dev": true
-    },
-    "is-accessor-descriptor": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz",
-      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "is-arguments": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.1.0.tgz?cache=0&sync_timestamp=1607117337190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-arguments%2Fdownload%2Fis-arguments-1.1.0.tgz",
-      "integrity": "sha1-YjUwMd++4HzrNGVqa95Z7+yujdk=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.0"
-      }
-    },
-    "is-arrayish": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz",
-      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
-      "dev": true
-    },
-    "is-bigint": {
-      "version": "1.0.2",
-      "resolved": "https://registry.nlark.com/is-bigint/download/is-bigint-1.0.2.tgz",
-      "integrity": "sha1-/7OBRCUDI1rSReqJ5Fs9v/BA7lo=",
-      "dev": true
-    },
-    "is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz",
-      "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "binary-extensions": "^2.0.0"
-      }
-    },
-    "is-boolean-object": {
-      "version": "1.1.1",
-      "resolved": "https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.1.tgz",
-      "integrity": "sha1-PAh48DXLghIo01DS4eNnGXFqPeg=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2"
-      }
-    },
-    "is-buffer": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz?cache=0&sync_timestamp=1604429452232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-buffer%2Fdownload%2Fis-buffer-1.1.6.tgz",
-      "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=",
-      "dev": true
-    },
-    "is-callable": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.3.tgz",
-      "integrity": "sha1-ix4FALc6HXbHBIdjbzaOUZ3o244=",
-      "dev": true
-    },
-    "is-ci": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz",
-      "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=",
-      "dev": true,
-      "requires": {
-        "ci-info": "^1.5.0"
-      }
-    },
-    "is-color-stop": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz",
-      "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
-      "dev": true,
-      "requires": {
-        "css-color-names": "^0.0.4",
-        "hex-color-regex": "^1.1.0",
-        "hsl-regex": "^1.0.0",
-        "hsla-regex": "^1.0.0",
-        "rgb-regex": "^1.0.1",
-        "rgba-regex": "^1.0.0"
-      }
-    },
-    "is-core-module": {
-      "version": "2.4.0",
-      "resolved": "https://registry.nlark.com/is-core-module/download/is-core-module-2.4.0.tgz",
-      "integrity": "sha1-jp/I4VAnsBFBgCbpjw5vTYYwXME=",
-      "dev": true,
-      "requires": {
-        "has": "^1.0.3"
-      }
-    },
-    "is-data-descriptor": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz",
-      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "is-date-object": {
-      "version": "1.0.4",
-      "resolved": "https://registry.nlark.com/is-date-object/download/is-date-object-1.0.4.tgz",
-      "integrity": "sha1-VQz8wDr62gXuo90wmBx7CVUfc+U=",
-      "dev": true
-    },
-    "is-descriptor": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz",
-      "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=",
-      "dev": true,
-      "requires": {
-        "is-accessor-descriptor": "^0.1.6",
-        "is-data-descriptor": "^0.1.4",
-        "kind-of": "^5.0.0"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz",
-          "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=",
-          "dev": true
-        }
-      }
-    },
-    "is-directory": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz",
-      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
-      "dev": true
-    },
-    "is-docker": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.2.1.tgz?cache=0&sync_timestamp=1617958843085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-docker%2Fdownload%2Fis-docker-2.2.1.tgz",
-      "integrity": "sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=",
-      "dev": true
-    },
-    "is-extendable": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz",
-      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
-      "dev": true
-    },
-    "is-extglob": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
-      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
-      "dev": true
-    },
-    "is-finite": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz?cache=0&sync_timestamp=1617779324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-finite%2Fdownload%2Fis-finite-1.1.0.tgz",
-      "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=",
-      "dev": true
-    },
-    "is-fullwidth-code-point": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz",
-      "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=",
-      "dev": true
-    },
-    "is-glob": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz",
-      "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=",
-      "dev": true,
-      "requires": {
-        "is-extglob": "^2.1.1"
-      }
-    },
-    "is-negative-zero": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/is-negative-zero/download/is-negative-zero-2.0.1.tgz?cache=0&sync_timestamp=1607123080624&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-negative-zero%2Fdownload%2Fis-negative-zero-2.0.1.tgz",
-      "integrity": "sha1-PedGwY3aIxkkGlNnWQjY92bxHCQ=",
-      "dev": true
-    },
-    "is-number": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz",
-      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "is-number-object": {
-      "version": "1.0.5",
-      "resolved": "https://registry.nlark.com/is-number-object/download/is-number-object-1.0.5.tgz",
-      "integrity": "sha1-bt+u7XlQz/Ga/tzp+/yp7m3Sies=",
-      "dev": true
-    },
-    "is-obj": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz?cache=0&sync_timestamp=1618600378936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-2.0.0.tgz",
-      "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=",
-      "dev": true
-    },
-    "is-observable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-observable/download/is-observable-1.1.0.tgz?cache=0&sync_timestamp=1596373156794&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-observable%2Fdownload%2Fis-observable-1.1.0.tgz",
-      "integrity": "sha1-s+mGyPRN6VCGfKtUA/WjRlAFl14=",
-      "dev": true,
-      "requires": {
-        "symbol-observable": "^1.1.0"
-      }
-    },
-    "is-path-cwd": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz",
-      "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=",
-      "dev": true
-    },
-    "is-path-in-cwd": {
-      "version": "2.1.0",
-      "resolved": "https://registry.nlark.com/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz?cache=0&sync_timestamp=1620047110449&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-in-cwd%2Fdownload%2Fis-path-in-cwd-2.1.0.tgz",
-      "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=",
-      "dev": true,
-      "requires": {
-        "is-path-inside": "^2.1.0"
-      }
-    },
-    "is-path-inside": {
-      "version": "2.1.0",
-      "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-2.1.0.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-2.1.0.tgz",
-      "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=",
-      "dev": true,
-      "requires": {
-        "path-is-inside": "^1.0.2"
-      }
-    },
-    "is-plain-obj": {
-      "version": "3.0.0",
-      "resolved": "https://registry.nlark.com/is-plain-obj/download/is-plain-obj-3.0.0.tgz",
-      "integrity": "sha1-r28uoUrFpkYYOlu9tbqrvBVq2dc=",
-      "dev": true
-    },
-    "is-plain-object": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz",
-      "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
-      "dev": true,
-      "requires": {
-        "isobject": "^3.0.1"
-      }
-    },
-    "is-promise": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz",
-      "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE="
-    },
-    "is-regex": {
-      "version": "1.1.3",
-      "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.3.tgz?cache=0&sync_timestamp=1620452285370&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.3.tgz",
-      "integrity": "sha1-0Cn5r/ZEi5Prvj8z2scVEf3L758=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "has-symbols": "^1.0.2"
-      }
-    },
-    "is-regexp": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz?cache=0&sync_timestamp=1617816524760&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-regexp%2Fdownload%2Fis-regexp-1.0.0.tgz",
-      "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
-      "dev": true
-    },
-    "is-resolvable": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz",
-      "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=",
-      "dev": true
-    },
-    "is-stream": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz",
-      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
-      "dev": true
-    },
-    "is-string": {
-      "version": "1.0.6",
-      "resolved": "https://registry.nlark.com/is-string/download/is-string-1.0.6.tgz?cache=0&sync_timestamp=1620448245505&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-string%2Fdownload%2Fis-string-1.0.6.tgz",
-      "integrity": "sha1-P+XVmS+w2TQE8yWE1LAXmnG1Sl8=",
-      "dev": true
-    },
-    "is-symbol": {
-      "version": "1.0.4",
-      "resolved": "https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz?cache=0&sync_timestamp=1620501182675&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.4.tgz",
-      "integrity": "sha1-ptrJO2NbBjymhyI23oiRClevE5w=",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.2"
-      }
-    },
-    "is-typedarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
-      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
-      "dev": true
-    },
-    "is-utf8": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
-      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
-      "dev": true
-    },
-    "is-windows": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz",
-      "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=",
-      "dev": true
-    },
-    "is-wsl": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz",
-      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
-      "dev": true
-    },
-    "isarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-      "dev": true
-    },
-    "isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
-      "dev": true
-    },
-    "isobject": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz",
-      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
-      "dev": true
-    },
-    "isstream": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
-      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
-      "dev": true
-    },
-    "javascript-stringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-2.1.0.tgz?cache=0&sync_timestamp=1618360134745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjavascript-stringify%2Fdownload%2Fjavascript-stringify-2.1.0.tgz",
-      "integrity": "sha1-J8dlOb4U2L0Sghmi1zGwkzeQTnk=",
-      "dev": true
-    },
-    "js-base64": {
-      "version": "2.6.4",
-      "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1604450326544&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz",
-      "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=",
-      "dev": true
-    },
-    "js-cookie": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.1.tgz",
-      "integrity": "sha1-aeEG3F1YBolFYpAqpbrsN0Tpsrg="
-    },
-    "js-file-download": {
-      "version": "0.4.12",
-      "resolved": "https://registry.npm.taobao.org/js-file-download/download/js-file-download-0.4.12.tgz",
-      "integrity": "sha1-EMcO82JVmlsjzb3DvW85nD2R2CE="
-    },
-    "js-message": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz?cache=0&sync_timestamp=1605129209185&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-message%2Fdownload%2Fjs-message-1.0.7.tgz",
-      "integrity": "sha1-+93QU8ekcCGHG7iyyVOXzBfCDkc=",
-      "dev": true
-    },
-    "js-queue": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.2.tgz?cache=0&sync_timestamp=1605129207324&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-queue%2Fdownload%2Fjs-queue-2.0.2.tgz",
-      "integrity": "sha1-C+WQM4+QOzbHPTPDGIOoIUEs1II=",
-      "dev": true,
-      "requires": {
-        "easy-stack": "^1.0.1"
-      }
-    },
-    "js-tokens": {
-      "version": "4.0.0",
-      "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz",
-      "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=",
-      "dev": true
-    },
-    "js-yaml": {
-      "version": "3.14.1",
-      "resolved": "https://registry.nlark.com/js-yaml/download/js-yaml-3.14.1.tgz?cache=0&sync_timestamp=1618846844115&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.1.tgz",
-      "integrity": "sha1-2ugS/bOCX6MGYJqHFzg8UMNqBTc=",
-      "dev": true,
-      "requires": {
-        "argparse": "^1.0.7",
-        "esprima": "^4.0.0"
-      }
-    },
-    "jsbn": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
-      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
-      "dev": true
-    },
-    "jsesc": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-2.5.2.tgz",
-      "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=",
-      "dev": true
-    },
-    "json-parse-better-errors": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz",
-      "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=",
-      "dev": true
-    },
-    "json-parse-even-better-errors": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npm.taobao.org/json-parse-even-better-errors/download/json-parse-even-better-errors-2.3.1.tgz?cache=0&sync_timestamp=1599064788298&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-parse-even-better-errors%2Fdownload%2Fjson-parse-even-better-errors-2.3.1.tgz",
-      "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=",
-      "dev": true
-    },
-    "json-schema": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1609553637722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz",
-      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
-      "dev": true
-    },
-    "json-schema-traverse": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1607999852153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz",
-      "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
-      "dev": true
-    },
-    "json-stable-stringify-without-jsonify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
-      "dev": true
-    },
-    "json-stringify-safe": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
-      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
-      "dev": true
-    },
-    "json3": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz",
-      "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=",
-      "dev": true
-    },
-    "json5": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.2.0.tgz",
-      "integrity": "sha1-Lf7+cgxrpSXZ69kJlQ8FFTFsiaM=",
-      "dev": true,
-      "requires": {
-        "minimist": "^1.2.5"
-      }
-    },
-    "jsonfile": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz?cache=0&sync_timestamp=1604161797011&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-4.0.0.tgz",
-      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.6"
-      }
-    },
-    "jsprim": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
-      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "1.0.0",
-        "extsprintf": "1.3.0",
-        "json-schema": "0.2.3",
-        "verror": "1.10.0"
-      }
-    },
-    "killable": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz",
-      "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=",
-      "dev": true
-    },
-    "kind-of": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz",
-      "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=",
-      "dev": true
-    },
-    "launch-editor": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz",
-      "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.3.0",
-        "shell-quote": "^1.6.1"
-      }
-    },
-    "launch-editor-middleware": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz",
-      "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=",
-      "dev": true,
-      "requires": {
-        "launch-editor": "^2.2.1"
-      }
-    },
-    "levn": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz",
-      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "~1.1.2",
-        "type-check": "~0.3.2"
-      }
-    },
-    "lines-and-columns": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz",
-      "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
-      "dev": true
-    },
-    "lint-staged": {
-      "version": "9.5.0",
-      "resolved": "https://registry.nlark.com/lint-staged/download/lint-staged-9.5.0.tgz?cache=0&sync_timestamp=1620406121591&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flint-staged%2Fdownload%2Flint-staged-9.5.0.tgz",
-      "integrity": "sha1-KQ7GBSUq9kbZt01zoPoRg2KwWjM=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.2",
-        "commander": "^2.20.0",
-        "cosmiconfig": "^5.2.1",
-        "debug": "^4.1.1",
-        "dedent": "^0.7.0",
-        "del": "^5.0.0",
-        "execa": "^2.0.3",
-        "listr": "^0.14.3",
-        "log-symbols": "^3.0.0",
-        "micromatch": "^4.0.2",
-        "normalize-path": "^3.0.0",
-        "please-upgrade-node": "^3.1.1",
-        "string-argv": "^0.3.0",
-        "stringify-object": "^3.3.0"
-      },
-      "dependencies": {
-        "@nodelib/fs.stat": {
-          "version": "2.0.4",
-          "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.4.tgz?cache=0&sync_timestamp=1609074554588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.4.tgz",
-          "integrity": "sha1-o/LdYbq0O424+hCKEhz//kxnZlU=",
-          "dev": true
-        },
-        "array-union": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-2.1.0.tgz?cache=0&sync_timestamp=1614624302839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz",
-          "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=",
-          "dev": true
-        },
-        "braces": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
-          "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
-          "dev": true,
-          "requires": {
-            "fill-range": "^7.0.1"
-          }
-        },
-        "cross-spawn": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz",
-          "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
-          "dev": true,
-          "requires": {
-            "path-key": "^3.1.0",
-            "shebang-command": "^2.0.0",
-            "which": "^2.0.1"
-          }
-        },
-        "del": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npm.taobao.org/del/download/del-5.1.0.tgz?cache=0&sync_timestamp=1601076882347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdel%2Fdownload%2Fdel-5.1.0.tgz",
-          "integrity": "sha1-2Uh8lONnQQ5u/ykl7ljAyEp1s6c=",
-          "dev": true,
-          "requires": {
-            "globby": "^10.0.1",
-            "graceful-fs": "^4.2.2",
-            "is-glob": "^4.0.1",
-            "is-path-cwd": "^2.2.0",
-            "is-path-inside": "^3.0.1",
-            "p-map": "^3.0.0",
-            "rimraf": "^3.0.0",
-            "slash": "^3.0.0"
-          }
-        },
-        "dir-glob": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz",
-          "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=",
-          "dev": true,
-          "requires": {
-            "path-type": "^4.0.0"
-          }
-        },
-        "execa": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/execa/download/execa-2.1.0.tgz?cache=0&sync_timestamp=1606971018065&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-2.1.0.tgz",
-          "integrity": "sha1-5dPs2DfSpg7FDz2nj9OXZ3R7vpk=",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^7.0.0",
-            "get-stream": "^5.0.0",
-            "is-stream": "^2.0.0",
-            "merge-stream": "^2.0.0",
-            "npm-run-path": "^3.0.0",
-            "onetime": "^5.1.0",
-            "p-finally": "^2.0.0",
-            "signal-exit": "^3.0.2",
-            "strip-final-newline": "^2.0.0"
-          }
-        },
-        "fast-glob": {
-          "version": "3.2.5",
-          "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-3.2.5.tgz?cache=0&sync_timestamp=1610876505711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-glob%2Fdownload%2Ffast-glob-3.2.5.tgz",
-          "integrity": "sha1-eTmvKmVt55pPGQGQPuityqfLlmE=",
-          "dev": true,
-          "requires": {
-            "@nodelib/fs.stat": "^2.0.2",
-            "@nodelib/fs.walk": "^1.2.3",
-            "glob-parent": "^5.1.0",
-            "merge2": "^1.3.0",
-            "micromatch": "^4.0.2",
-            "picomatch": "^2.2.1"
-          }
-        },
-        "fill-range": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
-          "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
-          "dev": true,
-          "requires": {
-            "to-regex-range": "^5.0.1"
-          }
-        },
-        "get-stream": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz",
-          "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=",
-          "dev": true,
-          "requires": {
-            "pump": "^3.0.0"
-          }
-        },
-        "globby": {
-          "version": "10.0.2",
-          "resolved": "https://registry.npm.taobao.org/globby/download/globby-10.0.2.tgz?cache=0&sync_timestamp=1616407139482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobby%2Fdownload%2Fglobby-10.0.2.tgz",
-          "integrity": "sha1-J3WT50WsqkZGw6tBEonsR6A5JUM=",
-          "dev": true,
-          "requires": {
-            "@types/glob": "^7.1.1",
-            "array-union": "^2.1.0",
-            "dir-glob": "^3.0.1",
-            "fast-glob": "^3.0.3",
-            "glob": "^7.1.3",
-            "ignore": "^5.1.1",
-            "merge2": "^1.2.3",
-            "slash": "^3.0.0"
-          }
-        },
-        "ignore": {
-          "version": "5.1.8",
-          "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-5.1.8.tgz?cache=0&sync_timestamp=1590809289115&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-5.1.8.tgz",
-          "integrity": "sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=",
-          "dev": true
-        },
-        "is-number": {
-          "version": "7.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
-          "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
-          "dev": true
-        },
-        "is-path-inside": {
-          "version": "3.0.3",
-          "resolved": "https://registry.nlark.com/is-path-inside/download/is-path-inside-3.0.3.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-3.0.3.tgz",
-          "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=",
-          "dev": true
-        },
-        "is-stream": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz",
-          "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=",
-          "dev": true
-        },
-        "log-symbols": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-3.0.0.tgz",
-          "integrity": "sha1-86CFFqXeqJMzan3uFNGKHP2rd8Q=",
-          "dev": true,
-          "requires": {
-            "chalk": "^2.4.2"
-          }
-        },
-        "micromatch": {
-          "version": "4.0.4",
-          "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz",
-          "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=",
-          "dev": true,
-          "requires": {
-            "braces": "^3.0.1",
-            "picomatch": "^2.2.3"
-          }
-        },
-        "mimic-fn": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1617823583529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz",
-          "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=",
-          "dev": true
-        },
-        "npm-run-path": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-3.1.0.tgz",
-          "integrity": "sha1-f5G+MX9qRm7+08nymArYpO6LD6U=",
-          "dev": true,
-          "requires": {
-            "path-key": "^3.0.0"
-          }
-        },
-        "onetime": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz",
-          "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=",
-          "dev": true,
-          "requires": {
-            "mimic-fn": "^2.1.0"
-          }
-        },
-        "p-finally": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz",
-          "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=",
-          "dev": true
-        },
-        "p-map": {
-          "version": "3.0.0",
-          "resolved": "https://registry.nlark.com/p-map/download/p-map-3.0.0.tgz",
-          "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=",
-          "dev": true,
-          "requires": {
-            "aggregate-error": "^3.0.0"
-          }
-        },
-        "path-key": {
-          "version": "3.1.1",
-          "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz",
-          "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
-          "dev": true
-        },
-        "path-type": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-4.0.0.tgz",
-          "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=",
-          "dev": true
-        },
-        "rimraf": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-3.0.2.tgz",
-          "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=",
-          "dev": true,
-          "requires": {
-            "glob": "^7.1.3"
-          }
-        },
-        "shebang-command": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz",
-          "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
-          "dev": true,
-          "requires": {
-            "shebang-regex": "^3.0.0"
-          }
-        },
-        "shebang-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz",
-          "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
-          "dev": true
-        },
-        "slash": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz?cache=0&sync_timestamp=1618384508676&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz",
-          "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=",
-          "dev": true
-        },
-        "to-regex-range": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
-          "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
-          "dev": true,
-          "requires": {
-            "is-number": "^7.0.0"
-          }
-        },
-        "which": {
-          "version": "2.0.2",
-          "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz",
-          "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
-          "dev": true,
-          "requires": {
-            "isexe": "^2.0.0"
-          }
-        }
-      }
-    },
-    "listr": {
-      "version": "0.14.3",
-      "resolved": "https://registry.npm.taobao.org/listr/download/listr-0.14.3.tgz",
-      "integrity": "sha1-L+qQlgTkNL5GTFC926DUlpKPpYY=",
-      "dev": true,
-      "requires": {
-        "@samverschueren/stream-to-observable": "^0.3.0",
-        "is-observable": "^1.1.0",
-        "is-promise": "^2.1.0",
-        "is-stream": "^1.1.0",
-        "listr-silent-renderer": "^1.1.1",
-        "listr-update-renderer": "^0.5.0",
-        "listr-verbose-renderer": "^0.5.0",
-        "p-map": "^2.0.0",
-        "rxjs": "^6.3.3"
-      }
-    },
-    "listr-silent-renderer": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz",
-      "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
-      "dev": true
-    },
-    "listr-update-renderer": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.5.0.tgz",
-      "integrity": "sha1-Tqg2hUinuK7LfgbYyVy0WuLt5qI=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.1.3",
-        "cli-truncate": "^0.2.1",
-        "elegant-spinner": "^1.0.1",
-        "figures": "^1.7.0",
-        "indent-string": "^3.0.0",
-        "log-symbols": "^1.0.2",
-        "log-update": "^2.3.0",
-        "strip-ansi": "^3.0.1"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "figures": {
-          "version": "1.7.0",
-          "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz?cache=0&sync_timestamp=1581865349068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-1.7.0.tgz",
-          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5",
-            "object-assign": "^4.1.0"
-          }
-        },
-        "indent-string": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz?cache=0&sync_timestamp=1618679561483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-3.2.0.tgz",
-          "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
-          "dev": true
-        },
-        "log-symbols": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz",
-          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-          "dev": true,
-          "requires": {
-            "chalk": "^1.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "listr-verbose-renderer": {
-      "version": "0.5.0",
-      "resolved": "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.5.0.tgz",
-      "integrity": "sha1-8RMhZ1NepMEmEQK58o2sfLoeA9s=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.1",
-        "cli-cursor": "^2.1.0",
-        "date-fns": "^1.27.2",
-        "figures": "^2.0.0"
-      },
-      "dependencies": {
-        "figures": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz?cache=0&sync_timestamp=1581865349068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffigures%2Fdownload%2Ffigures-2.0.0.tgz",
-          "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
-          "dev": true,
-          "requires": {
-            "escape-string-regexp": "^1.0.5"
-          }
-        }
-      }
-    },
-    "load-json-file": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-4.0.0.tgz",
-      "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "parse-json": "^4.0.0",
-        "pify": "^3.0.0",
-        "strip-bom": "^3.0.0"
-      },
-      "dependencies": {
-        "parse-json": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-4.0.0.tgz",
-          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.3.1",
-            "json-parse-better-errors": "^1.0.1"
-          }
-        },
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
-      }
-    },
-    "loader-fs-cache": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz",
-      "integrity": "sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k=",
-      "dev": true,
-      "requires": {
-        "find-cache-dir": "^0.1.1",
-        "mkdirp": "^0.5.1"
-      },
-      "dependencies": {
-        "find-cache-dir": {
-          "version": "0.1.1",
-          "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz",
-          "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
-          "dev": true,
-          "requires": {
-            "commondir": "^1.0.1",
-            "mkdirp": "^0.5.1",
-            "pkg-dir": "^1.0.0"
-          }
-        },
-        "find-up": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz",
-          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
-          "dev": true,
-          "requires": {
-            "path-exists": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
-          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
-          "dev": true,
-          "requires": {
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "pkg-dir": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-1.0.0.tgz",
-          "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
-          "dev": true,
-          "requires": {
-            "find-up": "^1.0.0"
-          }
-        }
-      }
-    },
-    "loader-runner": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1610027918622&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz",
-      "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=",
-      "dev": true
-    },
-    "loader-utils": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz?cache=0&sync_timestamp=1584445207623&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-utils%2Fdownload%2Floader-utils-1.4.0.tgz",
-      "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=",
-      "dev": true,
-      "requires": {
-        "big.js": "^5.2.2",
-        "emojis-list": "^3.0.0",
-        "json5": "^1.0.1"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
-          "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        }
-      }
-    },
-    "locate-path": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
-      "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
-      "dev": true,
-      "requires": {
-        "p-locate": "^4.1.0"
-      }
-    },
-    "lodash": {
-      "version": "4.17.21",
-      "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz",
-      "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw="
-    },
-    "lodash.debounce": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz",
-      "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
-      "dev": true
-    },
-    "lodash.defaultsdeep": {
-      "version": "4.6.1",
-      "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz",
-      "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=",
-      "dev": true
-    },
-    "lodash.kebabcase": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz",
-      "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=",
-      "dev": true
-    },
-    "lodash.mapvalues": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz",
-      "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
-      "dev": true
-    },
-    "lodash.memoize": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz",
-      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
-      "dev": true
-    },
-    "lodash.transform": {
-      "version": "4.6.0",
-      "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz",
-      "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=",
-      "dev": true
-    },
-    "lodash.uniq": {
-      "version": "4.5.0",
-      "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz",
-      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
-      "dev": true
-    },
-    "log-symbols": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz",
-      "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.1"
-      }
-    },
-    "log-update": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/log-update/download/log-update-2.3.0.tgz",
-      "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^3.0.0",
-        "cli-cursor": "^2.0.0",
-        "wrap-ansi": "^3.0.1"
-      },
-      "dependencies": {
-        "ansi-escapes": {
-          "version": "3.2.0",
-          "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz",
-          "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=",
-          "dev": true
-        },
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz",
-          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        },
-        "wrap-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-3.0.1.tgz",
-          "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
-          "dev": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0"
-          }
-        }
-      }
-    },
-    "loglevel": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.1.tgz?cache=0&sync_timestamp=1606314029553&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.1.tgz",
-      "integrity": "sha1-AF/eL15uRwaPk1/yhXPhJe9y8Zc=",
-      "dev": true
-    },
-    "loud-rejection": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz",
-      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
-      "dev": true,
-      "requires": {
-        "currently-unhandled": "^0.4.1",
-        "signal-exit": "^3.0.0"
-      }
-    },
-    "lower-case": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz?cache=0&sync_timestamp=1606867292121&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flower-case%2Fdownload%2Flower-case-1.1.4.tgz",
-      "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
-      "dev": true
-    },
-    "lru-cache": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427582110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz",
-      "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=",
-      "dev": true,
-      "requires": {
-        "yallist": "^3.0.2"
-      }
-    },
-    "make-dir": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz",
-      "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=",
-      "dev": true,
-      "requires": {
-        "semver": "^6.0.0"
-      }
-    },
-    "map-cache": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz",
-      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
-      "dev": true
-    },
-    "map-obj": {
-      "version": "1.0.1",
-      "resolved": "https://registry.nlark.com/map-obj/download/map-obj-1.0.1.tgz",
-      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
-      "dev": true
-    },
-    "map-visit": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz",
-      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
-      "dev": true,
-      "requires": {
-        "object-visit": "^1.0.0"
-      }
-    },
-    "material-colors": {
-      "version": "1.2.6",
-      "resolved": "https://registry.npm.taobao.org/material-colors/download/material-colors-1.2.6.tgz",
-      "integrity": "sha1-bRlYhxEmmSzuzHL0vMTY8BCGX0Y="
-    },
-    "md5.js": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz",
-      "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=",
-      "dev": true,
-      "requires": {
-        "hash-base": "^3.0.0",
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.1.2"
-      }
-    },
-    "mdn-data": {
-      "version": "2.0.4",
-      "resolved": "https://registry.nlark.com/mdn-data/download/mdn-data-2.0.4.tgz",
-      "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=",
-      "dev": true
-    },
-    "media-typer": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz",
-      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
-      "dev": true
-    },
-    "memory-fs": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz",
-      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
-      "dev": true,
-      "requires": {
-        "errno": "^0.1.3",
-        "readable-stream": "^2.0.1"
-      }
-    },
-    "meow": {
-      "version": "3.7.0",
-      "resolved": "https://registry.nlark.com/meow/download/meow-3.7.0.tgz",
-      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
-      "dev": true,
-      "requires": {
-        "camelcase-keys": "^2.0.0",
-        "decamelize": "^1.1.2",
-        "loud-rejection": "^1.0.0",
-        "map-obj": "^1.0.1",
-        "minimist": "^1.1.3",
-        "normalize-package-data": "^2.3.4",
-        "object-assign": "^4.0.1",
-        "read-pkg-up": "^1.0.1",
-        "redent": "^1.0.0",
-        "trim-newlines": "^1.0.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz",
-          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
-          "dev": true,
-          "requires": {
-            "path-exists": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "load-json-file": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz",
-          "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "parse-json": "^2.2.0",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0",
-            "strip-bom": "^2.0.0"
-          }
-        },
-        "parse-json": {
-          "version": "2.2.0",
-          "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz",
-          "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
-          "dev": true,
-          "requires": {
-            "error-ex": "^1.2.0"
-          }
-        },
-        "path-exists": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz",
-          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
-          "dev": true,
-          "requires": {
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "path-type": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-1.1.0.tgz",
-          "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        },
-        "read-pkg": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
-          "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "^1.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^1.0.0"
-          }
-        },
-        "read-pkg-up": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
-          "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
-          "dev": true,
-          "requires": {
-            "find-up": "^1.0.0",
-            "read-pkg": "^1.0.0"
-          }
-        },
-        "strip-bom": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz?cache=0&sync_timestamp=1618599551066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-2.0.0.tgz",
-          "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
-          "dev": true,
-          "requires": {
-            "is-utf8": "^0.2.0"
-          }
-        }
-      }
-    },
-    "merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
-      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
-      "dev": true
-    },
-    "merge-source-map": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz",
-      "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=",
-      "dev": true,
-      "requires": {
-        "source-map": "^0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "merge-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz",
-      "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=",
-      "dev": true
-    },
-    "merge2": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz",
-      "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=",
-      "dev": true
-    },
-    "methods": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz",
-      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
-      "dev": true
-    },
-    "micromatch": {
-      "version": "3.1.10",
-      "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&sync_timestamp=1618054842871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz",
-      "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=",
-      "dev": true,
-      "requires": {
-        "arr-diff": "^4.0.0",
-        "array-unique": "^0.3.2",
-        "braces": "^2.3.1",
-        "define-property": "^2.0.2",
-        "extend-shallow": "^3.0.2",
-        "extglob": "^2.0.4",
-        "fragment-cache": "^0.2.1",
-        "kind-of": "^6.0.2",
-        "nanomatch": "^1.2.9",
-        "object.pick": "^1.3.0",
-        "regex-not": "^1.0.0",
-        "snapdragon": "^0.8.1",
-        "to-regex": "^3.0.2"
-      }
-    },
-    "miller-rabin": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz",
-      "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.0.0",
-        "brorand": "^1.0.1"
-      },
-      "dependencies": {
-        "bn.js": {
-          "version": "4.12.0",
-          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
-          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
-          "dev": true
-        }
-      }
-    },
-    "mime": {
-      "version": "2.5.2",
-      "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.5.2.tgz?cache=0&sync_timestamp=1613584754851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.5.2.tgz",
-      "integrity": "sha1-bj3GzCuVEGQ4MOXxnVy3U9pe6r4=",
-      "dev": true
-    },
-    "mime-db": {
-      "version": "1.47.0",
-      "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.47.0.tgz?cache=0&sync_timestamp=1617306043996&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.47.0.tgz",
-      "integrity": "sha1-jLMT5Zll08Bc+/iYkVomevRqM1w=",
-      "dev": true
-    },
-    "mime-types": {
-      "version": "2.1.30",
-      "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.30.tgz",
-      "integrity": "sha1-bnvotMR5gl+F7WMmaV23P5MF1i0=",
-      "dev": true,
-      "requires": {
-        "mime-db": "1.47.0"
-      }
-    },
-    "mimic-fn": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz?cache=0&sync_timestamp=1617823583529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-1.2.0.tgz",
-      "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=",
-      "dev": true
-    },
-    "mini-css-extract-plugin": {
-      "version": "0.9.0",
-      "resolved": "https://registry.nlark.com/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz",
-      "integrity": "sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.1.0",
-        "normalize-url": "1.9.1",
-        "schema-utils": "^1.0.0",
-        "webpack-sources": "^1.1.0"
-      },
-      "dependencies": {
-        "normalize-url": {
-          "version": "1.9.1",
-          "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1617786359552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz",
-          "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
-          "dev": true,
-          "requires": {
-            "object-assign": "^4.0.1",
-            "prepend-http": "^1.0.0",
-            "query-string": "^4.1.0",
-            "sort-keys": "^1.0.0"
-          }
-        },
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
-          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        }
-      }
-    },
-    "minimalistic-assert": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz",
-      "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=",
-      "dev": true
-    },
-    "minimalistic-crypto-utils": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz",
-      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
-      "dev": true
-    },
-    "minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
-      "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
-      "dev": true,
-      "requires": {
-        "brace-expansion": "^1.1.7"
-      }
-    },
-    "minimist": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz",
-      "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=",
-      "dev": true
-    },
-    "minipass": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz",
-      "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=",
-      "dev": true,
-      "requires": {
-        "yallist": "^4.0.0"
-      },
-      "dependencies": {
-        "yallist": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz",
-          "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=",
-          "dev": true
-        }
-      }
-    },
-    "mississippi": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz",
-      "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=",
-      "dev": true,
-      "requires": {
-        "concat-stream": "^1.5.0",
-        "duplexify": "^3.4.2",
-        "end-of-stream": "^1.1.0",
-        "flush-write-stream": "^1.0.0",
-        "from2": "^2.1.0",
-        "parallel-transform": "^1.1.0",
-        "pump": "^3.0.0",
-        "pumpify": "^1.3.3",
-        "stream-each": "^1.1.0",
-        "through2": "^2.0.0"
-      }
-    },
-    "mixin-deep": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz",
-      "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=",
-      "dev": true,
-      "requires": {
-        "for-in": "^1.0.2",
-        "is-extendable": "^1.0.1"
-      },
-      "dependencies": {
-        "is-extendable": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz",
-          "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=",
-          "dev": true,
-          "requires": {
-            "is-plain-object": "^2.0.4"
-          }
-        }
-      }
-    },
-    "mkdirp": {
-      "version": "0.5.5",
-      "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz",
-      "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=",
-      "dev": true,
-      "requires": {
-        "minimist": "^1.2.5"
-      }
-    },
-    "move-concurrently": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
-      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.1.1",
-        "copy-concurrently": "^1.0.0",
-        "fs-write-stream-atomic": "^1.0.8",
-        "mkdirp": "^0.5.1",
-        "rimraf": "^2.5.4",
-        "run-queue": "^1.0.3"
-      }
-    },
-    "ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
-      "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
-      "dev": true
-    },
-    "multicast-dns": {
-      "version": "6.2.3",
-      "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz",
-      "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=",
-      "dev": true,
-      "requires": {
-        "dns-packet": "^1.3.1",
-        "thunky": "^1.0.2"
-      }
-    },
-    "multicast-dns-service-types": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz",
-      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
-      "dev": true
-    },
-    "mute-stream": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz",
-      "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=",
-      "dev": true
-    },
-    "mz": {
-      "version": "2.7.0",
-      "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz",
-      "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=",
-      "dev": true,
-      "requires": {
-        "any-promise": "^1.0.0",
-        "object-assign": "^4.0.1",
-        "thenify-all": "^1.0.0"
-      }
-    },
-    "nan": {
-      "version": "2.14.2",
-      "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.2.tgz?cache=0&sync_timestamp=1602591684976&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.2.tgz",
-      "integrity": "sha1-9TdkAGlRaPTMaUrJOT0MlYXu6hk=",
-      "dev": true
-    },
-    "nanomatch": {
-      "version": "1.2.13",
-      "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz",
-      "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=",
-      "dev": true,
-      "requires": {
-        "arr-diff": "^4.0.0",
-        "array-unique": "^0.3.2",
-        "define-property": "^2.0.2",
-        "extend-shallow": "^3.0.2",
-        "fragment-cache": "^0.2.1",
-        "is-windows": "^1.0.2",
-        "kind-of": "^6.0.2",
-        "object.pick": "^1.3.0",
-        "regex-not": "^1.0.0",
-        "snapdragon": "^0.8.1",
-        "to-regex": "^3.0.1"
-      }
-    },
-    "natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz",
-      "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
-      "dev": true
-    },
-    "negotiator": {
-      "version": "0.6.2",
-      "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz",
-      "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=",
-      "dev": true
-    },
-    "neo-async": {
-      "version": "2.6.2",
-      "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317434347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz",
-      "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=",
-      "dev": true
-    },
-    "nice-try": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz?cache=0&sync_timestamp=1614510039289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz",
-      "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=",
-      "dev": true
-    },
-    "no-case": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1606867290260&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz",
-      "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=",
-      "dev": true,
-      "requires": {
-        "lower-case": "^1.1.1"
-      }
-    },
-    "node-forge": {
-      "version": "0.10.0",
-      "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.10.0.tgz?cache=0&sync_timestamp=1599010773454&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-forge%2Fdownload%2Fnode-forge-0.10.0.tgz",
-      "integrity": "sha1-Mt6ir7Ppkm8C7lzoeUkCaRpna/M=",
-      "dev": true
-    },
-    "node-gyp": {
-      "version": "3.8.0",
-      "resolved": "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz?cache=0&sync_timestamp=1617410134031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-3.8.0.tgz",
-      "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=",
-      "dev": true,
-      "requires": {
-        "fstream": "^1.0.0",
-        "glob": "^7.0.3",
-        "graceful-fs": "^4.1.2",
-        "mkdirp": "^0.5.0",
-        "nopt": "2 || 3",
-        "npmlog": "0 || 1 || 2 || 3 || 4",
-        "osenv": "0",
-        "request": "^2.87.0",
-        "rimraf": "2",
-        "semver": "~5.3.0",
-        "tar": "^2.0.0",
-        "which": "1"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.3.0.tgz",
-          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
-          "dev": true
-        }
-      }
-    },
-    "node-ipc": {
-      "version": "9.1.4",
-      "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.4.tgz?cache=0&sync_timestamp=1614360609190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-ipc%2Fdownload%2Fnode-ipc-9.1.4.tgz",
-      "integrity": "sha1-Ks+WJoGv2sJgKHbZj+ZDTVTZvTw=",
-      "dev": true,
-      "requires": {
-        "event-pubsub": "4.3.0",
-        "js-message": "1.0.7",
-        "js-queue": "2.0.2"
-      }
-    },
-    "node-libs-browser": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz",
-      "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=",
-      "dev": true,
-      "requires": {
-        "assert": "^1.1.1",
-        "browserify-zlib": "^0.2.0",
-        "buffer": "^4.3.0",
-        "console-browserify": "^1.1.0",
-        "constants-browserify": "^1.0.0",
-        "crypto-browserify": "^3.11.0",
-        "domain-browser": "^1.1.1",
-        "events": "^3.0.0",
-        "https-browserify": "^1.0.0",
-        "os-browserify": "^0.3.0",
-        "path-browserify": "0.0.1",
-        "process": "^0.11.10",
-        "punycode": "^1.2.4",
-        "querystring-es3": "^0.2.0",
-        "readable-stream": "^2.3.3",
-        "stream-browserify": "^2.0.1",
-        "stream-http": "^2.7.2",
-        "string_decoder": "^1.0.0",
-        "timers-browserify": "^2.0.4",
-        "tty-browserify": "0.0.0",
-        "url": "^0.11.0",
-        "util": "^0.11.0",
-        "vm-browserify": "^1.0.1"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "1.4.1",
-          "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz",
-          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
-          "dev": true
-        }
-      }
-    },
-    "node-releases": {
-      "version": "1.1.72",
-      "resolved": "https://registry.nlark.com/node-releases/download/node-releases-1.1.72.tgz?cache=0&sync_timestamp=1620978644820&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.72.tgz",
-      "integrity": "sha1-FIAqtrEDmnmgx9ZithClu9durL4=",
-      "dev": true
-    },
-    "node-sass": {
-      "version": "4.14.1",
-      "resolved": "https://registry.nlark.com/node-sass/download/node-sass-4.14.1.tgz",
-      "integrity": "sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U=",
-      "dev": true,
-      "requires": {
-        "async-foreach": "^0.1.3",
-        "chalk": "^1.1.1",
-        "cross-spawn": "^3.0.0",
-        "gaze": "^1.0.0",
-        "get-stdin": "^4.0.1",
-        "glob": "^7.0.3",
-        "in-publish": "^2.0.0",
-        "lodash": "^4.17.15",
-        "meow": "^3.7.0",
-        "mkdirp": "^0.5.1",
-        "nan": "^2.13.2",
-        "node-gyp": "^3.8.0",
-        "npmlog": "^4.0.0",
-        "request": "^2.88.0",
-        "sass-graph": "2.2.5",
-        "stdout-stream": "^1.4.0",
-        "true-case-path": "^1.0.2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "cross-spawn": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz",
-          "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "which": "^1.2.9"
-          }
-        },
-        "lru-cache": {
-          "version": "4.1.5",
-          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427582110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz",
-          "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
-          "dev": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        },
-        "yallist": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
-          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
-          "dev": true
-        }
-      }
-    },
-    "nopt": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz?cache=0&sync_timestamp=1597649905420&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnopt%2Fdownload%2Fnopt-3.0.6.tgz",
-      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-      "dev": true,
-      "requires": {
-        "abbrev": "1"
-      }
-    },
-    "normalize-package-data": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1616087086564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz",
-      "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
-      "dev": true,
-      "requires": {
-        "hosted-git-info": "^2.1.4",
-        "resolve": "^1.10.0",
-        "semver": "2 || 3 || 4 || 5",
-        "validate-npm-package-license": "^3.0.1"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
-          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
-          "dev": true
-        }
-      }
-    },
-    "normalize-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz",
-      "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=",
-      "dev": true
-    },
-    "normalize-range": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz",
-      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
-      "dev": true
-    },
-    "normalize-url": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz?cache=0&sync_timestamp=1617786359552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-3.3.0.tgz",
-      "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=",
-      "dev": true
-    },
-    "normalize-wheel": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
-      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
-    },
-    "npm-run-path": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
-      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
-      "dev": true,
-      "requires": {
-        "path-key": "^2.0.0"
-      }
-    },
-    "npmlog": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz",
-      "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
-      "dev": true,
-      "requires": {
-        "are-we-there-yet": "~1.1.2",
-        "console-control-strings": "~1.1.0",
-        "gauge": "~2.7.3",
-        "set-blocking": "~2.0.0"
-      }
-    },
-    "nth-check": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz?cache=0&sync_timestamp=1606860664533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnth-check%2Fdownload%2Fnth-check-1.0.2.tgz",
-      "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=",
-      "dev": true,
-      "requires": {
-        "boolbase": "~1.0.0"
-      }
-    },
-    "num2fraction": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz",
-      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
-      "dev": true
-    },
-    "number-is-nan": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz?cache=0&sync_timestamp=1617776101309&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-      "dev": true
-    },
-    "oauth-sign": {
-      "version": "0.9.0",
-      "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
-      "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=",
-      "dev": true
-    },
-    "object-assign": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1571657171505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-      "dev": true
-    },
-    "object-copy": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz",
-      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
-      "dev": true,
-      "requires": {
-        "copy-descriptor": "^0.1.0",
-        "define-property": "^0.2.5",
-        "kind-of": "^3.0.3"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "object-hash": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/object-hash/download/object-hash-1.3.1.tgz?cache=0&sync_timestamp=1608921171985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-hash%2Fdownload%2Fobject-hash-1.3.1.tgz",
-      "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=",
-      "dev": true
-    },
-    "object-inspect": {
-      "version": "1.10.3",
-      "resolved": "https://registry.nlark.com/object-inspect/download/object-inspect-1.10.3.tgz?cache=0&sync_timestamp=1620446150016&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.10.3.tgz",
-      "integrity": "sha1-wqp9LQn1DJk3VwT3oK3yTFeC02k=",
-      "dev": true
-    },
-    "object-is": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.5.tgz?cache=0&sync_timestamp=1613857698573&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.5.tgz",
-      "integrity": "sha1-ud7qpfx/GEag+uzc7sE45XePU6w=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      }
-    },
-    "object-keys": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz",
-      "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=",
-      "dev": true
-    },
-    "object-visit": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz",
-      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
-      "dev": true,
-      "requires": {
-        "isobject": "^3.0.0"
-      }
-    },
-    "object.assign": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.2.tgz?cache=0&sync_timestamp=1604115158081&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.assign%2Fdownload%2Fobject.assign-4.1.2.tgz",
-      "integrity": "sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.0",
-        "define-properties": "^1.1.3",
-        "has-symbols": "^1.0.1",
-        "object-keys": "^1.1.1"
-      }
-    },
-    "object.getownpropertydescriptors": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.2.tgz?cache=0&sync_timestamp=1613860145677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.2.tgz",
-      "integrity": "sha1-G9Y66s8NXS0vMbXjk7A6fGAaI/c=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.18.0-next.2"
-      }
-    },
-    "object.pick": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz",
-      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
-      "dev": true,
-      "requires": {
-        "isobject": "^3.0.1"
-      }
-    },
-    "object.values": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.3.tgz",
-      "integrity": "sha1-6qix4XWJ8C9pjbCT98Yu4WmXQu4=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.18.0-next.2",
-        "has": "^1.0.3"
-      }
-    },
-    "obuf": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz",
-      "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=",
-      "dev": true
-    },
-    "on-finished": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz",
-      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
-      "dev": true,
-      "requires": {
-        "ee-first": "1.1.1"
-      }
-    },
-    "on-headers": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz",
-      "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=",
-      "dev": true
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-      "dev": true,
-      "requires": {
-        "wrappy": "1"
-      }
-    },
-    "onetime": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz",
-      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-      "dev": true,
-      "requires": {
-        "mimic-fn": "^1.0.0"
-      }
-    },
-    "open": {
-      "version": "6.4.0",
-      "resolved": "https://registry.nlark.com/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1620403721777&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fopen%2Fdownload%2Fopen-6.4.0.tgz",
-      "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=",
-      "dev": true,
-      "requires": {
-        "is-wsl": "^1.1.0"
-      }
-    },
-    "opener": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.2.tgz?cache=0&sync_timestamp=1598733244715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopener%2Fdownload%2Fopener-1.5.2.tgz",
-      "integrity": "sha1-XTfh81B3udysQwE3InGv3rKhNZg=",
-      "dev": true
-    },
-    "opn": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz",
-      "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=",
-      "dev": true,
-      "requires": {
-        "is-wsl": "^1.1.0"
-      }
-    },
-    "optionator": {
-      "version": "0.8.3",
-      "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz",
-      "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=",
-      "dev": true,
-      "requires": {
-        "deep-is": "~0.1.3",
-        "fast-levenshtein": "~2.0.6",
-        "levn": "~0.3.0",
-        "prelude-ls": "~1.1.2",
-        "type-check": "~0.3.2",
-        "word-wrap": "~1.2.3"
-      }
-    },
-    "ora": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz",
-      "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.2",
-        "cli-cursor": "^2.1.0",
-        "cli-spinners": "^2.0.0",
-        "log-symbols": "^2.2.0",
-        "strip-ansi": "^5.2.0",
-        "wcwidth": "^1.0.1"
-      },
-      "dependencies": {
-        "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-          "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^4.1.0"
-          }
-        }
-      }
-    },
-    "original": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz",
-      "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=",
-      "dev": true,
-      "requires": {
-        "url-parse": "^1.4.3"
-      }
-    },
-    "os-browserify": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz",
-      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
-      "dev": true
-    },
-    "os-homedir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz",
-      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
-      "dev": true
-    },
-    "os-tmpdir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
-      "dev": true
-    },
-    "osenv": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz",
-      "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=",
-      "dev": true,
-      "requires": {
-        "os-homedir": "^1.0.0",
-        "os-tmpdir": "^1.0.0"
-      }
-    },
-    "p-finally": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz",
-      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
-      "dev": true
-    },
-    "p-limit": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1606290276843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz",
-      "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
-      "dev": true,
-      "requires": {
-        "p-try": "^2.0.0"
-      }
-    },
-    "p-locate": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz",
-      "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
-      "dev": true,
-      "requires": {
-        "p-limit": "^2.2.0"
-      }
-    },
-    "p-map": {
-      "version": "2.1.0",
-      "resolved": "https://registry.nlark.com/p-map/download/p-map-2.1.0.tgz",
-      "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=",
-      "dev": true
-    },
-    "p-retry": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz?cache=0&sync_timestamp=1617001968077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-retry%2Fdownload%2Fp-retry-3.0.1.tgz",
-      "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=",
-      "dev": true,
-      "requires": {
-        "retry": "^0.12.0"
-      }
-    },
-    "p-try": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz",
-      "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=",
-      "dev": true
-    },
-    "pako": {
-      "version": "1.0.11",
-      "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz?cache=0&sync_timestamp=1610209004795&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpako%2Fdownload%2Fpako-1.0.11.tgz",
-      "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=",
-      "dev": true
-    },
-    "parallel-transform": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz",
-      "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=",
-      "dev": true,
-      "requires": {
-        "cyclist": "^1.0.1",
-        "inherits": "^2.0.3",
-        "readable-stream": "^2.1.5"
-      }
-    },
-    "param-case": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz?cache=0&sync_timestamp=1606867288643&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-2.1.1.tgz",
-      "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
-      "dev": true,
-      "requires": {
-        "no-case": "^2.2.0"
-      }
-    },
-    "parent-module": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz",
-      "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=",
-      "dev": true,
-      "requires": {
-        "callsites": "^3.0.0"
-      },
-      "dependencies": {
-        "callsites": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz",
-          "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=",
-          "dev": true
-        }
-      }
-    },
-    "parse-asn1": {
-      "version": "5.1.6",
-      "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.6.tgz?cache=0&sync_timestamp=1597167309380&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-asn1%2Fdownload%2Fparse-asn1-5.1.6.tgz",
-      "integrity": "sha1-OFCAo+wTy2KmLTlAnLPoiETNrtQ=",
-      "dev": true,
-      "requires": {
-        "asn1.js": "^5.2.0",
-        "browserify-aes": "^1.0.0",
-        "evp_bytestokey": "^1.0.0",
-        "pbkdf2": "^3.0.3",
-        "safe-buffer": "^5.1.1"
-      }
-    },
-    "parse-json": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-5.2.0.tgz",
-      "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "error-ex": "^1.3.1",
-        "json-parse-even-better-errors": "^2.3.0",
-        "lines-and-columns": "^1.1.6"
-      }
-    },
-    "parse5": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz?cache=0&sync_timestamp=1595850861876&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-5.1.1.tgz",
-      "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=",
-      "dev": true
-    },
-    "parse5-htmlparser2-tree-adapter": {
-      "version": "6.0.1",
-      "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
-      "integrity": "sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY=",
-      "dev": true,
-      "requires": {
-        "parse5": "^6.0.1"
-      },
-      "dependencies": {
-        "parse5": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-6.0.1.tgz?cache=0&sync_timestamp=1595850861876&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-6.0.1.tgz",
-          "integrity": "sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=",
-          "dev": true
-        }
-      }
-    },
-    "parseurl": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz",
-      "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=",
-      "dev": true
-    },
-    "pascalcase": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz",
-      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
-      "dev": true
-    },
-    "path-browserify": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz",
-      "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=",
-      "dev": true
-    },
-    "path-dirname": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz",
-      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
-      "dev": true
-    },
-    "path-exists": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz",
-      "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=",
-      "dev": true
-    },
-    "path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-      "dev": true
-    },
-    "path-is-inside": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz",
-      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
-      "dev": true
-    },
-    "path-key": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz",
-      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
-      "dev": true
-    },
-    "path-parse": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz",
-      "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=",
-      "dev": true
-    },
-    "path-starts-with": {
-      "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/path-starts-with/download/path-starts-with-1.0.0.tgz",
-      "integrity": "sha1-soJDAV6LE43lcmgqxS2kLmRq2E4=",
-      "dev": true,
-      "requires": {
-        "normalize-path": "^2.1.1"
-      },
-      "dependencies": {
-        "normalize-path": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
-          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-          "dev": true,
-          "requires": {
-            "remove-trailing-separator": "^1.0.1"
-          }
-        }
-      }
-    },
-    "path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz",
-      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
-      "dev": true
-    },
-    "path-type": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-3.0.0.tgz",
-      "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=",
-      "dev": true,
-      "requires": {
-        "pify": "^3.0.0"
-      },
-      "dependencies": {
-        "pify": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz",
-          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-          "dev": true
-        }
-      }
-    },
-    "pbkdf2": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.2.tgz?cache=0&sync_timestamp=1617976027191&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpbkdf2%2Fdownload%2Fpbkdf2-3.1.2.tgz",
-      "integrity": "sha1-3YIqoIh1gOUvGgOdw+2hCO+uMHU=",
-      "dev": true,
-      "requires": {
-        "create-hash": "^1.1.2",
-        "create-hmac": "^1.1.4",
-        "ripemd160": "^2.0.1",
-        "safe-buffer": "^5.0.1",
-        "sha.js": "^2.4.8"
-      }
-    },
-    "performance-now": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
-      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-      "dev": true
-    },
-    "picomatch": {
-      "version": "2.2.3",
-      "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.3.tgz?cache=0&sync_timestamp=1618050023150&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpicomatch%2Fdownload%2Fpicomatch-2.2.3.tgz",
-      "integrity": "sha1-RlVH81nMwgbTxI5Goby4m/fuYZ0=",
-      "dev": true
-    },
-    "pify": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz",
-      "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
-      "dev": true
-    },
-    "pinkie": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz",
-      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
-      "dev": true
-    },
-    "pinkie-promise": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz",
-      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
-      "dev": true,
-      "requires": {
-        "pinkie": "^2.0.0"
-      }
-    },
-    "pkg-dir": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-4.2.0.tgz",
-      "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=",
-      "dev": true,
-      "requires": {
-        "find-up": "^4.0.0"
-      }
-    },
-    "pkg-up": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz",
-      "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
-      "dev": true,
-      "requires": {
-        "find-up": "^2.1.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
-          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
-          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^2.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606290276843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
-          "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
-          "dev": true,
-          "requires": {
-            "p-try": "^1.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
-          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^1.1.0"
-          }
-        },
-        "p-try": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
-          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
-          "dev": true
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        }
-      }
-    },
-    "please-upgrade-node": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npm.taobao.org/please-upgrade-node/download/please-upgrade-node-3.2.0.tgz",
-      "integrity": "sha1-rt3T+ZTJM+StmLmdmlVu+g4v6UI=",
-      "dev": true,
-      "requires": {
-        "semver-compare": "^1.0.0"
-      }
-    },
-    "pnp-webpack-plugin": {
-      "version": "1.6.4",
-      "resolved": "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&sync_timestamp=1589684269502&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz",
-      "integrity": "sha1-yXEaxNxIpoXauvyG+Lbdn434QUk=",
-      "dev": true,
-      "requires": {
-        "ts-pnp": "^1.1.6"
-      }
-    },
-    "portfinder": {
-      "version": "1.0.28",
-      "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.28.tgz?cache=0&sync_timestamp=1596018176291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.28.tgz",
-      "integrity": "sha1-Z8RiKFK9U3TdHdkA93n1NGL6x3g=",
-      "dev": true,
-      "requires": {
-        "async": "^2.6.2",
-        "debug": "^3.1.1",
-        "mkdirp": "^0.5.5"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz",
-          "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "posix-character-classes": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz",
-      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
-      "dev": true
-    },
-    "postcss": {
-      "version": "7.0.35",
-      "resolved": "https://registry.nlark.com/postcss/download/postcss-7.0.35.tgz?cache=0&sync_timestamp=1620676610377&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss%2Fdownload%2Fpostcss-7.0.35.tgz",
-      "integrity": "sha1-0r4AuZj38hHYonaXQHny6SuXDiQ=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.2",
-        "source-map": "^0.6.1",
-        "supports-color": "^6.1.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
-          "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "postcss-calc": {
-      "version": "7.0.5",
-      "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.5.tgz?cache=0&sync_timestamp=1609689294247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.5.tgz",
-      "integrity": "sha1-+KbpnxLmGcLrwjz2xIb9wVhgkz4=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.27",
-        "postcss-selector-parser": "^6.0.2",
-        "postcss-value-parser": "^4.0.2"
-      }
-    },
-    "postcss-colormin": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz?cache=0&sync_timestamp=1618056387757&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-colormin%2Fdownload%2Fpostcss-colormin-4.0.3.tgz",
-      "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.0.0",
-        "color": "^3.0.0",
-        "has": "^1.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-convert-values": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz?cache=0&sync_timestamp=1618056388436&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-convert-values%2Fdownload%2Fpostcss-convert-values-4.0.1.tgz",
-      "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-discard-comments": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz?cache=0&sync_timestamp=1618056386715&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-comments%2Fdownload%2Fpostcss-discard-comments-4.0.2.tgz",
-      "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0"
-      }
-    },
-    "postcss-discard-duplicates": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz?cache=0&sync_timestamp=1618056387068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-discard-duplicates%2Fdownload%2Fpostcss-discard-duplicates-4.0.2.tgz",
-      "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0"
-      }
-    },
-    "postcss-discard-empty": {
-      "version": "4.0.1",
-      "resolved": "https://registry.nlark.com/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz",
-      "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0"
-      }
-    },
-    "postcss-discard-overridden": {
-      "version": "4.0.1",
-      "resolved": "https://registry.nlark.com/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz",
-      "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0"
-      }
-    },
-    "postcss-load-config": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.2.tgz?cache=0&sync_timestamp=1612742943575&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-load-config%2Fdownload%2Fpostcss-load-config-2.1.2.tgz",
-      "integrity": "sha1-xepQTyxK7zPHNZo03jVzdyrXUCo=",
-      "dev": true,
-      "requires": {
-        "cosmiconfig": "^5.0.0",
-        "import-cwd": "^2.0.0"
-      }
-    },
-    "postcss-loader": {
-      "version": "3.0.0",
-      "resolved": "https://registry.nlark.com/postcss-loader/download/postcss-loader-3.0.0.tgz",
-      "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.1.0",
-        "postcss": "^7.0.0",
-        "postcss-load-config": "^2.0.0",
-        "schema-utils": "^1.0.0"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
-          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        }
-      }
-    },
-    "postcss-merge-longhand": {
-      "version": "4.0.11",
-      "resolved": "https://registry.nlark.com/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz",
-      "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=",
-      "dev": true,
-      "requires": {
-        "css-color-names": "0.0.4",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0",
-        "stylehacks": "^4.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-merge-rules": {
-      "version": "4.0.3",
-      "resolved": "https://registry.nlark.com/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz",
-      "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.0.0",
-        "caniuse-api": "^3.0.0",
-        "cssnano-util-same-parent": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-selector-parser": "^3.0.0",
-        "vendors": "^1.0.0"
-      },
-      "dependencies": {
-        "postcss-selector-parser": {
-          "version": "3.1.2",
-          "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz",
-          "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=",
-          "dev": true,
-          "requires": {
-            "dot-prop": "^5.2.0",
-            "indexes-of": "^1.0.1",
-            "uniq": "^1.0.1"
-          }
-        }
-      }
-    },
-    "postcss-minify-font-values": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz",
-      "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-minify-gradients": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz",
-      "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=",
-      "dev": true,
-      "requires": {
-        "cssnano-util-get-arguments": "^4.0.0",
-        "is-color-stop": "^1.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-minify-params": {
-      "version": "4.0.2",
-      "resolved": "https://registry.nlark.com/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz",
-      "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=",
-      "dev": true,
-      "requires": {
-        "alphanum-sort": "^1.0.0",
-        "browserslist": "^4.0.0",
-        "cssnano-util-get-arguments": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0",
-        "uniqs": "^2.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-minify-selectors": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz",
-      "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=",
-      "dev": true,
-      "requires": {
-        "alphanum-sort": "^1.0.0",
-        "has": "^1.0.0",
-        "postcss": "^7.0.0",
-        "postcss-selector-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-selector-parser": {
-          "version": "3.1.2",
-          "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz",
-          "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=",
-          "dev": true,
-          "requires": {
-            "dot-prop": "^5.2.0",
-            "indexes-of": "^1.0.1",
-            "uniq": "^1.0.1"
-          }
-        }
-      }
-    },
-    "postcss-modules-extract-imports": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz?cache=0&sync_timestamp=1602588245463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-extract-imports%2Fdownload%2Fpostcss-modules-extract-imports-2.0.0.tgz",
-      "integrity": "sha1-gYcZoa4doyX5gyRGsBE27rSTzX4=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.5"
-      }
-    },
-    "postcss-modules-local-by-default": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.3.tgz?cache=0&sync_timestamp=1602587568476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-3.0.3.tgz",
-      "integrity": "sha1-uxTgzHgnnVBNvcv9fgyiiZP/u7A=",
-      "dev": true,
-      "requires": {
-        "icss-utils": "^4.1.1",
-        "postcss": "^7.0.32",
-        "postcss-selector-parser": "^6.0.2",
-        "postcss-value-parser": "^4.1.0"
-      }
-    },
-    "postcss-modules-scope": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz?cache=0&sync_timestamp=1602593260387&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.2.0.tgz",
-      "integrity": "sha1-OFyuATzHdD9afXYC0Qc6iequYu4=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.6",
-        "postcss-selector-parser": "^6.0.0"
-      }
-    },
-    "postcss-modules-values": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz?cache=0&sync_timestamp=1602586230505&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-3.0.0.tgz",
-      "integrity": "sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA=",
-      "dev": true,
-      "requires": {
-        "icss-utils": "^4.0.0",
-        "postcss": "^7.0.6"
-      }
-    },
-    "postcss-normalize-charset": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz?cache=0&sync_timestamp=1618056389116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-charset%2Fdownload%2Fpostcss-normalize-charset-4.0.1.tgz",
-      "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0"
-      }
-    },
-    "postcss-normalize-display-values": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz",
-      "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=",
-      "dev": true,
-      "requires": {
-        "cssnano-util-get-match": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-positions": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz?cache=0&sync_timestamp=1618056388080&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-positions%2Fdownload%2Fpostcss-normalize-positions-4.0.2.tgz",
-      "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=",
-      "dev": true,
-      "requires": {
-        "cssnano-util-get-arguments": "^4.0.0",
-        "has": "^1.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-repeat-style": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz?cache=0&sync_timestamp=1618056392185&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-repeat-style%2Fdownload%2Fpostcss-normalize-repeat-style-4.0.2.tgz",
-      "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=",
-      "dev": true,
-      "requires": {
-        "cssnano-util-get-arguments": "^4.0.0",
-        "cssnano-util-get-match": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-string": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz?cache=0&sync_timestamp=1618056389791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-normalize-string%2Fdownload%2Fpostcss-normalize-string-4.0.2.tgz",
-      "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=",
-      "dev": true,
-      "requires": {
-        "has": "^1.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-timing-functions": {
-      "version": "4.0.2",
-      "resolved": "https://registry.nlark.com/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz",
-      "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=",
-      "dev": true,
-      "requires": {
-        "cssnano-util-get-match": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-unicode": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz",
-      "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-url": {
-      "version": "4.0.1",
-      "resolved": "https://registry.nlark.com/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz",
-      "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=",
-      "dev": true,
-      "requires": {
-        "is-absolute-url": "^2.0.0",
-        "normalize-url": "^3.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-normalize-whitespace": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz",
-      "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-ordered-values": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz?cache=0&sync_timestamp=1618056391473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-ordered-values%2Fdownload%2Fpostcss-ordered-values-4.1.2.tgz",
-      "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=",
-      "dev": true,
-      "requires": {
-        "cssnano-util-get-arguments": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-reduce-initial": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz?cache=0&sync_timestamp=1618056389446&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-reduce-initial%2Fdownload%2Fpostcss-reduce-initial-4.0.3.tgz",
-      "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.0.0",
-        "caniuse-api": "^3.0.0",
-        "has": "^1.0.0",
-        "postcss": "^7.0.0"
-      }
-    },
-    "postcss-reduce-transforms": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz",
-      "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=",
-      "dev": true,
-      "requires": {
-        "cssnano-util-get-match": "^4.0.0",
-        "has": "^1.0.0",
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-selector-parser": {
-      "version": "6.0.6",
-      "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-6.0.6.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.6.tgz",
-      "integrity": "sha1-LFu6gXSsL2mBq2MaQqsO5UrzMuo=",
-      "dev": true,
-      "requires": {
-        "cssesc": "^3.0.0",
-        "util-deprecate": "^1.0.2"
-      }
-    },
-    "postcss-svgo": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.3.tgz?cache=0&sync_timestamp=1618056390441&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-svgo%2Fdownload%2Fpostcss-svgo-4.0.3.tgz",
-      "integrity": "sha1-NDos26yVBdQWJD1Jb3JPOIlMlB4=",
-      "dev": true,
-      "requires": {
-        "postcss": "^7.0.0",
-        "postcss-value-parser": "^3.0.0",
-        "svgo": "^1.0.0"
-      },
-      "dependencies": {
-        "postcss-value-parser": {
-          "version": "3.3.1",
-          "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz",
-          "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=",
-          "dev": true
-        }
-      }
-    },
-    "postcss-unique-selectors": {
-      "version": "4.0.1",
-      "resolved": "https://registry.nlark.com/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz",
-      "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=",
-      "dev": true,
-      "requires": {
-        "alphanum-sort": "^1.0.0",
-        "postcss": "^7.0.0",
-        "uniqs": "^2.0.0"
-      }
-    },
-    "postcss-value-parser": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz",
-      "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=",
-      "dev": true
-    },
-    "prelude-ls": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz",
-      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
-      "dev": true
-    },
-    "prepend-http": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz",
-      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
-      "dev": true
-    },
-    "prettier": {
-      "version": "1.19.1",
-      "resolved": "https://registry.nlark.com/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1620594183343&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz",
-      "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=",
-      "dev": true,
-      "optional": true
-    },
-    "pretty-error": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.2.tgz",
-      "integrity": "sha1-von4LYGxyG7I/fvDhQRYgnJ/k7Y=",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.20",
-        "renderkid": "^2.0.4"
-      }
-    },
-    "process": {
-      "version": "0.11.10",
-      "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
-      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
-      "dev": true
-    },
-    "process-nextick-args": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz",
-      "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=",
-      "dev": true
-    },
-    "progress": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz",
-      "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=",
-      "dev": true
-    },
-    "promise-inflight": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz",
-      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
-      "dev": true
-    },
-    "proxy-addr": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
-      "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=",
-      "dev": true,
-      "requires": {
-        "forwarded": "~0.1.2",
-        "ipaddr.js": "1.9.1"
-      }
-    },
-    "prr": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz",
-      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
-      "dev": true
-    },
-    "pseudomap": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz",
-      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
-      "dev": true
-    },
-    "psl": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz",
-      "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=",
-      "dev": true
-    },
-    "public-encrypt": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz",
-      "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.0",
-        "browserify-rsa": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "parse-asn1": "^5.0.0",
-        "randombytes": "^2.0.1",
-        "safe-buffer": "^5.1.2"
-      },
-      "dependencies": {
-        "bn.js": {
-          "version": "4.12.0",
-          "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.12.0.tgz",
-          "integrity": "sha1-d1s/J477uXGO7HNh9IP7Nvu/6og=",
-          "dev": true
-        }
-      }
-    },
-    "pump": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz",
-      "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.1.0",
-        "once": "^1.3.1"
-      }
-    },
-    "pumpify": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz",
-      "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=",
-      "dev": true,
-      "requires": {
-        "duplexify": "^3.6.0",
-        "inherits": "^2.0.3",
-        "pump": "^2.0.0"
-      },
-      "dependencies": {
-        "pump": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz",
-          "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=",
-          "dev": true,
-          "requires": {
-            "end-of-stream": "^1.1.0",
-            "once": "^1.3.1"
-          }
-        }
-      }
-    },
-    "punycode": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
-      "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=",
-      "dev": true
-    },
-    "q": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz",
-      "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
-      "dev": true
-    },
-    "qs": {
-      "version": "6.5.2",
-      "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz",
-      "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=",
-      "dev": true
-    },
-    "query-string": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz",
-      "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
-      "dev": true,
-      "requires": {
-        "object-assign": "^4.1.0",
-        "strict-uri-encode": "^1.0.0"
-      }
-    },
-    "querystring": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz?cache=0&sync_timestamp=1613399913000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystring%2Fdownload%2Fquerystring-0.2.0.tgz",
-      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
-      "dev": true
-    },
-    "querystring-es3": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz",
-      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
-      "dev": true
-    },
-    "querystringify": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.2.0.tgz?cache=0&sync_timestamp=1597686771604&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquerystringify%2Fdownload%2Fquerystringify-2.2.0.tgz",
-      "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=",
-      "dev": true
-    },
-    "queue-microtask": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391510274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz",
-      "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=",
-      "dev": true
-    },
-    "randombytes": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
-      "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "^5.1.0"
-      }
-    },
-    "randomfill": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz",
-      "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=",
-      "dev": true,
-      "requires": {
-        "randombytes": "^2.0.5",
-        "safe-buffer": "^5.1.0"
-      }
-    },
-    "range-parser": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz",
-      "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=",
-      "dev": true
-    },
-    "raw-body": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz",
-      "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=",
-      "dev": true,
-      "requires": {
-        "bytes": "3.1.0",
-        "http-errors": "1.7.2",
-        "iconv-lite": "0.4.24",
-        "unpipe": "1.0.0"
-      }
-    },
-    "read-pkg": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz",
-      "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=",
-      "dev": true,
-      "requires": {
-        "@types/normalize-package-data": "^2.4.0",
-        "normalize-package-data": "^2.5.0",
-        "parse-json": "^5.0.0",
-        "type-fest": "^0.6.0"
-      }
-    },
-    "read-pkg-up": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-3.0.0.tgz",
-      "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
-      "dev": true,
-      "requires": {
-        "find-up": "^2.0.0",
-        "read-pkg": "^3.0.0"
-      },
-      "dependencies": {
-        "find-up": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz",
-          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^2.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",
-          "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^2.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-limit": {
-          "version": "1.3.0",
-          "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1606290276843&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz",
-          "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=",
-          "dev": true,
-          "requires": {
-            "p-try": "^1.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz",
-          "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^1.1.0"
-          }
-        },
-        "p-try": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz",
-          "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
-          "dev": true
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        },
-        "read-pkg": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-3.0.0.tgz",
-          "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
-          "dev": true,
-          "requires": {
-            "load-json-file": "^4.0.0",
-            "normalize-package-data": "^2.3.2",
-            "path-type": "^3.0.0"
-          }
-        }
-      }
-    },
-    "readable-stream": {
-      "version": "2.3.7",
-      "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz",
-      "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
-      "dev": true,
-      "requires": {
-        "core-util-is": "~1.0.0",
-        "inherits": "~2.0.3",
-        "isarray": "~1.0.0",
-        "process-nextick-args": "~2.0.0",
-        "safe-buffer": "~5.1.1",
-        "string_decoder": "~1.1.1",
-        "util-deprecate": "~1.0.1"
-      }
-    },
-    "readdirp": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.5.0.tgz",
-      "integrity": "sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "picomatch": "^2.2.1"
-      }
-    },
-    "redent": {
-      "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/redent/download/redent-1.0.0.tgz?cache=0&sync_timestamp=1620069702182&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-1.0.0.tgz",
-      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
-      "dev": true,
-      "requires": {
-        "indent-string": "^2.1.0",
-        "strip-indent": "^1.0.1"
-      },
-      "dependencies": {
-        "indent-string": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz?cache=0&sync_timestamp=1618679561483&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Findent-string%2Fdownload%2Findent-string-2.1.0.tgz",
-          "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
-          "dev": true,
-          "requires": {
-            "repeating": "^2.0.0"
-          }
-        },
-        "strip-indent": {
-          "version": "1.0.1",
-          "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz",
-          "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
-          "dev": true,
-          "requires": {
-            "get-stdin": "^4.0.1"
-          }
-        }
-      }
-    },
-    "regenerate": {
-      "version": "1.4.2",
-      "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.2.tgz?cache=0&sync_timestamp=1604218353677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate%2Fdownload%2Fregenerate-1.4.2.tgz",
-      "integrity": "sha1-uTRtiCfo9aMve6KWN9OYtpAUhIo=",
-      "dev": true
-    },
-    "regenerate-unicode-properties": {
-      "version": "8.2.0",
-      "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz",
-      "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=",
-      "dev": true,
-      "requires": {
-        "regenerate": "^1.4.0"
-      }
-    },
-    "regenerator-runtime": {
-      "version": "0.13.7",
-      "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz",
-      "integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U="
-    },
-    "regenerator-transform": {
-      "version": "0.14.5",
-      "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557846694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz",
-      "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=",
-      "dev": true,
-      "requires": {
-        "@babel/runtime": "^7.8.4"
-      }
-    },
-    "regex-not": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz",
-      "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=",
-      "dev": true,
-      "requires": {
-        "extend-shallow": "^3.0.2",
-        "safe-regex": "^1.1.0"
-      }
-    },
-    "regexp.prototype.flags": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz?cache=0&sync_timestamp=1610725679574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.1.tgz",
-      "integrity": "sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      }
-    },
-    "regexpp": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz",
-      "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=",
-      "dev": true
-    },
-    "regexpu-core": {
-      "version": "4.7.1",
-      "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.1.tgz?cache=0&sync_timestamp=1600413461940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.1.tgz",
-      "integrity": "sha1-LepamgcjMpj78NuR+pq8TG4PitY=",
-      "dev": true,
-      "requires": {
-        "regenerate": "^1.4.0",
-        "regenerate-unicode-properties": "^8.2.0",
-        "regjsgen": "^0.5.1",
-        "regjsparser": "^0.6.4",
-        "unicode-match-property-ecmascript": "^1.0.4",
-        "unicode-match-property-value-ecmascript": "^1.2.0"
-      }
-    },
-    "regjsgen": {
-      "version": "0.5.2",
-      "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz",
-      "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=",
-      "dev": true
-    },
-    "regjsparser": {
-      "version": "0.6.9",
-      "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.9.tgz?cache=0&sync_timestamp=1616544927031&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsparser%2Fdownload%2Fregjsparser-0.6.9.tgz",
-      "integrity": "sha1-tInu98mizkNydicBFCnPgzpxg+Y=",
-      "dev": true,
-      "requires": {
-        "jsesc": "~0.5.0"
-      },
-      "dependencies": {
-        "jsesc": {
-          "version": "0.5.0",
-          "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz?cache=0&sync_timestamp=1603891232110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsesc%2Fdownload%2Fjsesc-0.5.0.tgz",
-          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
-          "dev": true
-        }
-      }
-    },
-    "relateurl": {
-      "version": "0.2.7",
-      "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz",
-      "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
-      "dev": true
-    },
-    "remove-trailing-separator": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz",
-      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
-      "dev": true
-    },
-    "renderkid": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.5.tgz?cache=0&sync_timestamp=1609588663632&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frenderkid%2Fdownload%2Frenderkid-2.0.5.tgz",
-      "integrity": "sha1-SDsaxZxmAaswp6WWpZZcq8z90KU=",
-      "dev": true,
-      "requires": {
-        "css-select": "^2.0.2",
-        "dom-converter": "^0.2",
-        "htmlparser2": "^3.10.1",
-        "lodash": "^4.17.20",
-        "strip-ansi": "^3.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        }
-      }
-    },
-    "repeat-element": {
-      "version": "1.1.4",
-      "resolved": "https://registry.nlark.com/repeat-element/download/repeat-element-1.1.4.tgz",
-      "integrity": "sha1-vmgVIIR6tYx1aKx1+/rSjtQtOek=",
-      "dev": true
-    },
-    "repeat-string": {
-      "version": "1.6.1",
-      "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz",
-      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
-      "dev": true
-    },
-    "repeating": {
-      "version": "2.0.1",
-      "resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz",
-      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
-      "dev": true,
-      "requires": {
-        "is-finite": "^1.0.0"
-      }
-    },
-    "request": {
-      "version": "2.88.2",
-      "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz",
-      "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=",
-      "dev": true,
-      "requires": {
-        "aws-sign2": "~0.7.0",
-        "aws4": "^1.8.0",
-        "caseless": "~0.12.0",
-        "combined-stream": "~1.0.6",
-        "extend": "~3.0.2",
-        "forever-agent": "~0.6.1",
-        "form-data": "~2.3.2",
-        "har-validator": "~5.1.3",
-        "http-signature": "~1.2.0",
-        "is-typedarray": "~1.0.0",
-        "isstream": "~0.1.2",
-        "json-stringify-safe": "~5.0.1",
-        "mime-types": "~2.1.19",
-        "oauth-sign": "~0.9.0",
-        "performance-now": "^2.1.0",
-        "qs": "~6.5.2",
-        "safe-buffer": "^5.1.2",
-        "tough-cookie": "~2.5.0",
-        "tunnel-agent": "^0.6.0",
-        "uuid": "^3.3.2"
-      }
-    },
-    "require-directory": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true
-    },
-    "require-main-filename": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz",
-      "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=",
-      "dev": true
-    },
-    "requires-port": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz",
-      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-      "dev": true
-    },
-    "resize-observer-polyfill": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
-      "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
-    },
-    "resolve": {
-      "version": "1.20.0",
-      "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz",
-      "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=",
-      "dev": true,
-      "requires": {
-        "is-core-module": "^2.2.0",
-        "path-parse": "^1.0.6"
-      }
-    },
-    "resolve-cwd": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz",
-      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
-      "dev": true,
-      "requires": {
-        "resolve-from": "^3.0.0"
-      }
-    },
-    "resolve-from": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz",
-      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
-      "dev": true
-    },
-    "resolve-url": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz",
-      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
-      "dev": true
-    },
-    "restore-cursor": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz",
-      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
-      "dev": true,
-      "requires": {
-        "onetime": "^2.0.0",
-        "signal-exit": "^3.0.2"
-      }
-    },
-    "ret": {
-      "version": "0.1.15",
-      "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz?cache=0&sync_timestamp=1613002712228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fret%2Fdownload%2Fret-0.1.15.tgz",
-      "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=",
-      "dev": true
-    },
-    "retry": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz",
-      "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
-      "dev": true
-    },
-    "reusify": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz",
-      "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=",
-      "dev": true
-    },
-    "rgb-regex": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz",
-      "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
-      "dev": true
-    },
-    "rgba-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz",
-      "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
-      "dev": true
-    },
-    "rimraf": {
-      "version": "2.7.1",
-      "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz",
-      "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=",
-      "dev": true,
-      "requires": {
-        "glob": "^7.1.3"
-      }
-    },
-    "ripemd160": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz",
-      "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=",
-      "dev": true,
-      "requires": {
-        "hash-base": "^3.0.0",
-        "inherits": "^2.0.1"
-      }
-    },
-    "run-async": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz",
-      "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=",
-      "dev": true
-    },
-    "run-parallel": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz",
-      "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=",
-      "dev": true,
-      "requires": {
-        "queue-microtask": "^1.2.2"
-      }
-    },
-    "run-queue": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz",
-      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
-      "dev": true,
-      "requires": {
-        "aproba": "^1.1.1"
-      }
-    },
-    "rxjs": {
-      "version": "6.6.7",
-      "resolved": "https://registry.nlark.com/rxjs/download/rxjs-6.6.7.tgz",
-      "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "safe-buffer": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
-      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",
-      "dev": true
-    },
-    "safe-regex": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz",
-      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
-      "dev": true,
-      "requires": {
-        "ret": "~0.1.10"
-      }
-    },
-    "safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz",
-      "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=",
-      "dev": true
-    },
-    "sass-graph": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-graph%2Fdownload%2Fsass-graph-2.2.5.tgz",
-      "integrity": "sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug=",
-      "dev": true,
-      "requires": {
-        "glob": "^7.0.0",
-        "lodash": "^4.0.0",
-        "scss-tokenizer": "^0.2.3",
-        "yargs": "^13.3.2"
-      },
-      "dependencies": {
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
-          "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
-          "dev": true
-        },
-        "cliui": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1604880033053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz",
-          "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=",
-          "dev": true,
-          "requires": {
-            "string-width": "^3.1.0",
-            "strip-ansi": "^5.2.0",
-            "wrap-ansi": "^5.1.0"
-          }
-        },
-        "emoji-regex": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
-          "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
-          "dev": true
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
-          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
-          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
-          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
-          "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
-          "dev": true,
-          "requires": {
-            "emoji-regex": "^7.0.1",
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^5.1.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-          "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^4.1.0"
-          }
-        },
-        "wrap-ansi": {
-          "version": "5.1.0",
-          "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz",
-          "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.0",
-            "string-width": "^3.0.0",
-            "strip-ansi": "^5.0.0"
-          }
-        },
-        "yargs": {
-          "version": "13.3.2",
-          "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz",
-          "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
-          "dev": true,
-          "requires": {
-            "cliui": "^5.0.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^3.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^13.1.2"
-          }
-        },
-        "yargs-parser": {
-          "version": "13.1.2",
-          "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1615405185480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz",
-          "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "sass-loader": {
-      "version": "8.0.2",
-      "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-8.0.2.tgz?cache=0&sync_timestamp=1620926321113&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass-loader%2Fdownload%2Fsass-loader-8.0.2.tgz",
-      "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=",
-      "dev": true,
-      "requires": {
-        "clone-deep": "^4.0.1",
-        "loader-utils": "^1.2.3",
-        "neo-async": "^2.6.1",
-        "schema-utils": "^2.6.1",
-        "semver": "^6.3.0"
-      }
-    },
-    "sax": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
-      "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
-      "dev": true
-    },
-    "schema-utils": {
-      "version": "2.7.1",
-      "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.1.tgz",
-      "integrity": "sha1-HKTzLRskxZDCA7jnpQvw6kzTlNc=",
-      "dev": true,
-      "requires": {
-        "@types/json-schema": "^7.0.5",
-        "ajv": "^6.12.4",
-        "ajv-keywords": "^3.5.2"
-      }
-    },
-    "scss-tokenizer": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz",
-      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
-      "dev": true,
-      "requires": {
-        "js-base64": "^2.1.8",
-        "source-map": "^0.4.2"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.4.4",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.4.4.tgz",
-          "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
-          "dev": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        }
-      }
-    },
-    "select": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz",
-      "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
-    },
-    "select-hose": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz",
-      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
-      "dev": true
-    },
-    "selfsigned": {
-      "version": "1.10.11",
-      "resolved": "https://registry.nlark.com/selfsigned/download/selfsigned-1.10.11.tgz",
-      "integrity": "sha1-JJKc2Qb+D0S20B+yOZmnOVN6y+k=",
-      "dev": true,
-      "requires": {
-        "node-forge": "^0.10.0"
-      }
-    },
-    "semver": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
-      "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
-      "dev": true
-    },
-    "semver-compare": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz",
-      "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
-      "dev": true
-    },
-    "send": {
-      "version": "0.17.1",
-      "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz",
-      "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "destroy": "~1.0.4",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "etag": "~1.8.1",
-        "fresh": "0.5.2",
-        "http-errors": "~1.7.2",
-        "mime": "1.6.0",
-        "ms": "2.1.1",
-        "on-finished": "~2.3.0",
-        "range-parser": "~1.2.1",
-        "statuses": "~1.5.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          },
-          "dependencies": {
-            "ms": {
-              "version": "2.0.0",
-              "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-              "dev": true
-            }
-          }
-        },
-        "mime": {
-          "version": "1.6.0",
-          "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1613584754851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz",
-          "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.1.tgz",
-          "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=",
-          "dev": true
-        }
-      }
-    },
-    "serialize-javascript": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-4.0.0.tgz?cache=0&sync_timestamp=1599740650381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-4.0.0.tgz",
-      "integrity": "sha1-tSXhI4SJpez8Qq+sw/6Z5mb0sao=",
-      "dev": true,
-      "requires": {
-        "randombytes": "^2.1.0"
-      }
-    },
-    "serve-index": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz",
-      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.4",
-        "batch": "0.6.1",
-        "debug": "2.6.9",
-        "escape-html": "~1.0.3",
-        "http-errors": "~1.6.2",
-        "mime-types": "~2.1.17",
-        "parseurl": "~1.3.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "http-errors": {
-          "version": "1.6.3",
-          "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407676624&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz",
-          "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
-          "dev": true,
-          "requires": {
-            "depd": "~1.1.2",
-            "inherits": "2.0.3",
-            "setprototypeof": "1.1.0",
-            "statuses": ">= 1.4.0 < 2"
-          }
-        },
-        "inherits": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
-          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-          "dev": true
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        },
-        "setprototypeof": {
-          "version": "1.1.0",
-          "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz",
-          "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=",
-          "dev": true
-        }
-      }
-    },
-    "serve-static": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz",
-      "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=",
-      "dev": true,
-      "requires": {
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "parseurl": "~1.3.3",
-        "send": "0.17.1"
-      }
-    },
-    "set-blocking": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-      "dev": true
-    },
-    "set-value": {
-      "version": "2.0.1",
-      "resolved": "https://registry.nlark.com/set-value/download/set-value-2.0.1.tgz",
-      "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=",
-      "dev": true,
-      "requires": {
-        "extend-shallow": "^2.0.1",
-        "is-extendable": "^0.1.1",
-        "is-plain-object": "^2.0.3",
-        "split-string": "^3.0.1"
-      },
-      "dependencies": {
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        }
-      }
-    },
-    "setimmediate": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz",
-      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
-      "dev": true
-    },
-    "setprototypeof": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz",
-      "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=",
-      "dev": true
-    },
-    "sha.js": {
-      "version": "2.4.11",
-      "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz",
-      "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "shallow-clone": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz",
-      "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^6.0.2"
-      }
-    },
-    "shebang-command": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz",
-      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
-      "dev": true,
-      "requires": {
-        "shebang-regex": "^1.0.0"
-      }
-    },
-    "shebang-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz",
-      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
-      "dev": true
-    },
-    "shell-quote": {
-      "version": "1.7.2",
-      "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz",
-      "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=",
-      "dev": true
-    },
-    "signal-exit": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz",
-      "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=",
-      "dev": true
-    },
-    "simple-swizzle": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz",
-      "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
-      "dev": true,
-      "requires": {
-        "is-arrayish": "^0.3.1"
-      },
-      "dependencies": {
-        "is-arrayish": {
-          "version": "0.3.2",
-          "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz",
-          "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=",
-          "dev": true
-        }
-      }
-    },
-    "slash": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz?cache=0&sync_timestamp=1618384508676&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-2.0.0.tgz",
-      "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=",
-      "dev": true
-    },
-    "slice-ansi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz?cache=0&sync_timestamp=1618554953055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslice-ansi%2Fdownload%2Fslice-ansi-2.1.0.tgz",
-      "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.0",
-        "astral-regex": "^1.0.0",
-        "is-fullwidth-code-point": "^2.0.0"
-      },
-      "dependencies": {
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        }
-      }
-    },
-    "snapdragon": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsnapdragon%2Fdownload%2Fsnapdragon-0.8.2.tgz",
-      "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=",
-      "dev": true,
-      "requires": {
-        "base": "^0.11.1",
-        "debug": "^2.2.0",
-        "define-property": "^0.2.5",
-        "extend-shallow": "^2.0.1",
-        "map-cache": "^0.2.2",
-        "source-map": "^0.5.6",
-        "source-map-resolve": "^0.5.0",
-        "use": "^3.1.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "2.6.9",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz",
-          "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1607433842694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "snapdragon-node": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz",
-      "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=",
-      "dev": true,
-      "requires": {
-        "define-property": "^1.0.0",
-        "isobject": "^3.0.0",
-        "snapdragon-util": "^3.0.1"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz",
-          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^1.0.0"
-          }
-        },
-        "is-accessor-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz",
-          "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-data-descriptor": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz",
-          "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=",
-          "dev": true,
-          "requires": {
-            "kind-of": "^6.0.0"
-          }
-        },
-        "is-descriptor": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz",
-          "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=",
-          "dev": true,
-          "requires": {
-            "is-accessor-descriptor": "^1.0.0",
-            "is-data-descriptor": "^1.0.0",
-            "kind-of": "^6.0.2"
-          }
-        }
-      }
-    },
-    "snapdragon-util": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz",
-      "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.2.0"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "sockjs": {
-      "version": "0.3.21",
-      "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.21.tgz",
-      "integrity": "sha1-s0/7mOeWkwtgoM+hGQTWozmn1Bc=",
-      "dev": true,
-      "requires": {
-        "faye-websocket": "^0.11.3",
-        "uuid": "^3.4.0",
-        "websocket-driver": "^0.7.4"
-      }
-    },
-    "sockjs-client": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.5.1.tgz?cache=0&sync_timestamp=1616686664258&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsockjs-client%2Fdownload%2Fsockjs-client-1.5.1.tgz",
-      "integrity": "sha1-JWkI9tWt+5Tau9vQLGY2LMoPnqY=",
-      "dev": true,
-      "requires": {
-        "debug": "^3.2.6",
-        "eventsource": "^1.0.7",
-        "faye-websocket": "^0.11.3",
-        "inherits": "^2.0.4",
-        "json3": "^3.3.3",
-        "url-parse": "^1.5.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.7",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz",
-          "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "sort-keys": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz",
-      "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
-      "dev": true,
-      "requires": {
-        "is-plain-obj": "^1.0.0"
-      },
-      "dependencies": {
-        "is-plain-obj": {
-          "version": "1.1.0",
-          "resolved": "https://registry.nlark.com/is-plain-obj/download/is-plain-obj-1.1.0.tgz",
-          "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
-          "dev": true
-        }
-      }
-    },
-    "source-list-map": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz",
-      "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=",
-      "dev": true
-    },
-    "source-map": {
-      "version": "0.5.7",
-      "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.5.7.tgz",
-      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-      "dev": true
-    },
-    "source-map-resolve": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584829515586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz",
-      "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=",
-      "dev": true,
-      "requires": {
-        "atob": "^2.1.2",
-        "decode-uri-component": "^0.2.0",
-        "resolve-url": "^0.2.1",
-        "source-map-url": "^0.4.0",
-        "urix": "^0.1.0"
-      }
-    },
-    "source-map-support": {
-      "version": "0.5.19",
-      "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719289626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz",
-      "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=",
-      "dev": true,
-      "requires": {
-        "buffer-from": "^1.0.0",
-        "source-map": "^0.6.0"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "source-map-url": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.1.tgz?cache=0&sync_timestamp=1612211015749&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-url%2Fdownload%2Fsource-map-url-0.4.1.tgz",
-      "integrity": "sha1-CvZmBadFpaL5HPG7+KevvCg97FY=",
-      "dev": true
-    },
-    "spdx-correct": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz",
-      "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=",
-      "dev": true,
-      "requires": {
-        "spdx-expression-parse": "^3.0.0",
-        "spdx-license-ids": "^3.0.0"
-      }
-    },
-    "spdx-exceptions": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz",
-      "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=",
-      "dev": true
-    },
-    "spdx-expression-parse": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz",
-      "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=",
-      "dev": true,
-      "requires": {
-        "spdx-exceptions": "^2.1.0",
-        "spdx-license-ids": "^3.0.0"
-      }
-    },
-    "spdx-license-ids": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.7.tgz?cache=0&sync_timestamp=1606610735791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-license-ids%2Fdownload%2Fspdx-license-ids-3.0.7.tgz",
-      "integrity": "sha1-6cGKQQ5e1+EkQqVJ+9ivp2cDjWU=",
-      "dev": true
-    },
-    "spdy": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz?cache=0&sync_timestamp=1585970491493&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdy%2Fdownload%2Fspdy-4.0.2.tgz",
-      "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=",
-      "dev": true,
-      "requires": {
-        "debug": "^4.1.0",
-        "handle-thing": "^2.0.0",
-        "http-deceiver": "^1.2.7",
-        "select-hose": "^2.0.0",
-        "spdy-transport": "^3.0.0"
-      }
-    },
-    "spdy-transport": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz",
-      "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=",
-      "dev": true,
-      "requires": {
-        "debug": "^4.1.0",
-        "detect-node": "^2.0.4",
-        "hpack.js": "^2.1.6",
-        "obuf": "^1.1.2",
-        "readable-stream": "^3.0.6",
-        "wbuf": "^1.7.3"
-      },
-      "dependencies": {
-        "readable-stream": {
-          "version": "3.6.0",
-          "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz",
-          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
-          "dev": true,
-          "requires": {
-            "inherits": "^2.0.3",
-            "string_decoder": "^1.1.1",
-            "util-deprecate": "^1.0.1"
-          }
-        }
-      }
-    },
-    "split-string": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz",
-      "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=",
-      "dev": true,
-      "requires": {
-        "extend-shallow": "^3.0.0"
-      }
-    },
-    "sprintf-js": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
-      "dev": true
-    },
-    "sshpk": {
-      "version": "1.16.1",
-      "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
-      "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=",
-      "dev": true,
-      "requires": {
-        "asn1": "~0.2.3",
-        "assert-plus": "^1.0.0",
-        "bcrypt-pbkdf": "^1.0.0",
-        "dashdash": "^1.12.0",
-        "ecc-jsbn": "~0.1.1",
-        "getpass": "^0.1.1",
-        "jsbn": "~0.1.0",
-        "safer-buffer": "^2.0.2",
-        "tweetnacl": "~0.14.0"
-      }
-    },
-    "ssri": {
-      "version": "6.0.2",
-      "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.2.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-6.0.2.tgz",
-      "integrity": "sha1-FXk5E08gRk5zAd26PpD/qPdyisU=",
-      "dev": true,
-      "requires": {
-        "figgy-pudding": "^3.5.1"
-      }
-    },
-    "stable": {
-      "version": "0.1.8",
-      "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz",
-      "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=",
-      "dev": true
-    },
-    "stackframe": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz?cache=0&sync_timestamp=1590854108362&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.2.0.tgz",
-      "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=",
-      "dev": true
-    },
-    "static-extend": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
-      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
-      "dev": true,
-      "requires": {
-        "define-property": "^0.2.5",
-        "object-copy": "^0.1.0"
-      },
-      "dependencies": {
-        "define-property": {
-          "version": "0.2.5",
-          "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz",
-          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
-          "dev": true,
-          "requires": {
-            "is-descriptor": "^0.1.0"
-          }
-        }
-      }
-    },
-    "statuses": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1609654014762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz",
-      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
-      "dev": true
-    },
-    "stdout-stream": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz",
-      "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "^2.0.1"
-      }
-    },
-    "stream-browserify": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041194718&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz",
-      "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=",
-      "dev": true,
-      "requires": {
-        "inherits": "~2.0.1",
-        "readable-stream": "^2.0.2"
-      }
-    },
-    "stream-each": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz",
-      "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.1.0",
-        "stream-shift": "^1.0.0"
-      }
-    },
-    "stream-http": {
-      "version": "2.8.3",
-      "resolved": "https://registry.nlark.com/stream-http/download/stream-http-2.8.3.tgz",
-      "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=",
-      "dev": true,
-      "requires": {
-        "builtin-status-codes": "^3.0.0",
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.3.6",
-        "to-arraybuffer": "^1.0.0",
-        "xtend": "^4.0.0"
-      }
-    },
-    "stream-shift": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz",
-      "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=",
-      "dev": true
-    },
-    "strict-uri-encode": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz",
-      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
-      "dev": true
-    },
-    "string-argv": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npm.taobao.org/string-argv/download/string-argv-0.3.1.tgz",
-      "integrity": "sha1-leL77AQnrhkYSTX4FtdKqkxcGdo=",
-      "dev": true
-    },
-    "string-width": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.2.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-4.2.2.tgz",
-      "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=",
-      "dev": true,
-      "requires": {
-        "emoji-regex": "^8.0.0",
-        "is-fullwidth-code-point": "^3.0.0",
-        "strip-ansi": "^6.0.0"
-      }
-    },
-    "string.prototype.trimend": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.4.tgz?cache=0&sync_timestamp=1614128416111&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.4.tgz",
-      "integrity": "sha1-51rpDClCxjUEaGwYsoe0oLGkX4A=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      }
-    },
-    "string.prototype.trimstart": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz",
-      "integrity": "sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=",
-      "dev": true,
-      "requires": {
-        "call-bind": "^1.0.2",
-        "define-properties": "^1.1.3"
-      }
-    },
-    "string_decoder": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
-      "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "~5.1.0"
-      }
-    },
-    "stringify-object": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz",
-      "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=",
-      "dev": true,
-      "requires": {
-        "get-own-enumerable-property-symbols": "^3.0.0",
-        "is-obj": "^1.0.1",
-        "is-regexp": "^1.0.0"
-      },
-      "dependencies": {
-        "is-obj": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz?cache=0&sync_timestamp=1618600378936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-obj%2Fdownload%2Fis-obj-1.0.1.tgz",
-          "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
-          "dev": true
-        }
-      }
-    },
-    "strip-ansi": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz",
-      "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "^5.0.0"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "5.0.0",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.0.tgz",
-          "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=",
-          "dev": true
-        }
-      }
-    },
-    "strip-bom": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz?cache=0&sync_timestamp=1618599551066&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-3.0.0.tgz",
-      "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
-      "dev": true
-    },
-    "strip-eof": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz",
-      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
-      "dev": true
-    },
-    "strip-final-newline": {
-      "version": "2.0.0",
-      "resolved": "https://registry.nlark.com/strip-final-newline/download/strip-final-newline-2.0.0.tgz",
-      "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=",
-      "dev": true
-    },
-    "strip-indent": {
-      "version": "2.0.0",
-      "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-2.0.0.tgz",
-      "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
-      "dev": true
-    },
-    "strip-json-comments": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz?cache=0&sync_timestamp=1594567532500&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz",
-      "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=",
-      "dev": true
-    },
-    "stylehacks": {
-      "version": "4.0.3",
-      "resolved": "https://registry.nlark.com/stylehacks/download/stylehacks-4.0.3.tgz",
-      "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=",
-      "dev": true,
-      "requires": {
-        "browserslist": "^4.0.0",
-        "postcss": "^7.0.0",
-        "postcss-selector-parser": "^3.0.0"
-      },
-      "dependencies": {
-        "postcss-selector-parser": {
-          "version": "3.1.2",
-          "resolved": "https://registry.nlark.com/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&sync_timestamp=1620752924836&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz",
-          "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=",
-          "dev": true,
-          "requires": {
-            "dot-prop": "^5.2.0",
-            "indexes-of": "^1.0.1",
-            "uniq": "^1.0.1"
-          }
-        }
-      }
-    },
-    "supports-color": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-5.5.0.tgz",
-      "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
-      "dev": true,
-      "requires": {
-        "has-flag": "^3.0.0"
-      }
-    },
-    "svg-tags": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz",
-      "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
-      "dev": true
-    },
-    "svgo": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1616929367791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz",
-      "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.4.1",
-        "coa": "^2.0.2",
-        "css-select": "^2.0.0",
-        "css-select-base-adapter": "^0.1.1",
-        "css-tree": "1.0.0-alpha.37",
-        "csso": "^4.0.2",
-        "js-yaml": "^3.13.1",
-        "mkdirp": "~0.5.1",
-        "object.values": "^1.1.0",
-        "sax": "~1.2.4",
-        "stable": "^0.1.8",
-        "unquote": "~1.1.1",
-        "util.promisify": "~1.0.0"
-      }
-    },
-    "symbol-observable": {
-      "version": "1.2.0",
-      "resolved": "https://registry.nlark.com/symbol-observable/download/symbol-observable-1.2.0.tgz",
-      "integrity": "sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ=",
-      "dev": true
-    },
-    "table": {
-      "version": "5.4.6",
-      "resolved": "https://registry.nlark.com/table/download/table-5.4.6.tgz",
-      "integrity": "sha1-EpLRlQDOP4YFOwXw6Ofko7shB54=",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.10.2",
-        "lodash": "^4.17.14",
-        "slice-ansi": "^2.1.0",
-        "string-width": "^3.0.0"
-      },
-      "dependencies": {
-        "emoji-regex": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
-          "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
-          "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
-          "dev": true,
-          "requires": {
-            "emoji-regex": "^7.0.1",
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^5.1.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-          "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^4.1.0"
-          }
-        }
-      }
-    },
-    "tapable": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz?cache=0&sync_timestamp=1607088905649&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftapable%2Fdownload%2Ftapable-1.1.3.tgz",
-      "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=",
-      "dev": true
-    },
-    "tar": {
-      "version": "2.2.2",
-      "resolved": "https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz",
-      "integrity": "sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA=",
-      "dev": true,
-      "requires": {
-        "block-stream": "*",
-        "fstream": "^1.0.12",
-        "inherits": "2"
-      }
-    },
-    "terser": {
-      "version": "4.8.0",
-      "resolved": "https://registry.nlark.com/terser/download/terser-4.8.0.tgz",
-      "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=",
-      "dev": true,
-      "requires": {
-        "commander": "^2.20.0",
-        "source-map": "~0.6.1",
-        "source-map-support": "~0.5.12"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "terser-webpack-plugin": {
-      "version": "1.4.5",
-      "resolved": "https://registry.nlark.com/terser-webpack-plugin/download/terser-webpack-plugin-1.4.5.tgz?cache=0&sync_timestamp=1620830698693&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.5.tgz",
-      "integrity": "sha1-oheu+uozDnNP+sthIOwfoxLWBAs=",
-      "dev": true,
-      "requires": {
-        "cacache": "^12.0.2",
-        "find-cache-dir": "^2.1.0",
-        "is-wsl": "^1.1.0",
-        "schema-utils": "^1.0.0",
-        "serialize-javascript": "^4.0.0",
-        "source-map": "^0.6.1",
-        "terser": "^4.1.2",
-        "webpack-sources": "^1.4.0",
-        "worker-farm": "^1.7.0"
-      },
-      "dependencies": {
-        "find-cache-dir": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz",
-          "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=",
-          "dev": true,
-          "requires": {
-            "commondir": "^1.0.1",
-            "make-dir": "^2.0.0",
-            "pkg-dir": "^3.0.0"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
-          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
-          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "make-dir": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567572251&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz",
-          "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
-          "dev": true,
-          "requires": {
-            "pify": "^4.0.1",
-            "semver": "^5.6.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
-          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        },
-        "pkg-dir": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz?cache=0&sync_timestamp=1602859045787&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpkg-dir%2Fdownload%2Fpkg-dir-3.0.0.tgz",
-          "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=",
-          "dev": true,
-          "requires": {
-            "find-up": "^3.0.0"
-          }
-        },
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
-          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1616463603361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
-          "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "text-table": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
-      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
-      "dev": true
-    },
-    "thenify": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz",
-      "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=",
-      "dev": true,
-      "requires": {
-        "any-promise": "^1.0.0"
-      }
-    },
-    "thenify-all": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz",
-      "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
-      "dev": true,
-      "requires": {
-        "thenify": ">= 3.1.0 < 4"
-      }
-    },
-    "thread-loader": {
-      "version": "2.1.3",
-      "resolved": "https://registry.nlark.com/thread-loader/download/thread-loader-2.1.3.tgz",
-      "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=",
-      "dev": true,
-      "requires": {
-        "loader-runner": "^2.3.1",
-        "loader-utils": "^1.1.0",
-        "neo-async": "^2.6.0"
-      }
-    },
-    "throttle-debounce": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1604313832516&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz",
-      "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
-    },
-    "through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",
-      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
-      "dev": true
-    },
-    "through2": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz",
-      "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "~2.3.6",
-        "xtend": "~4.0.1"
-      }
-    },
-    "thunky": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz",
-      "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=",
-      "dev": true
-    },
-    "timers-browserify": {
-      "version": "2.0.12",
-      "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.12.tgz?cache=0&sync_timestamp=1603793741116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftimers-browserify%2Fdownload%2Ftimers-browserify-2.0.12.tgz",
-      "integrity": "sha1-RKRcEfv0B/NPl7zNFXfGUjYbAO4=",
-      "dev": true,
-      "requires": {
-        "setimmediate": "^1.0.4"
-      }
-    },
-    "timsort": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz",
-      "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
-      "dev": true
-    },
-    "tiny-emitter": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz",
-      "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM="
-    },
-    "tmp": {
-      "version": "0.0.33",
-      "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1588178571895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz",
-      "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=",
-      "dev": true,
-      "requires": {
-        "os-tmpdir": "~1.0.2"
-      }
-    },
-    "to-arraybuffer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz",
-      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
-      "dev": true
-    },
-    "to-fast-properties": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550317222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz",
-      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
-      "dev": true
-    },
-    "to-object-path": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz",
-      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
-      "dev": true,
-      "requires": {
-        "kind-of": "^3.0.2"
-      },
-      "dependencies": {
-        "kind-of": {
-          "version": "3.2.2",
-          "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
-          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
-          "dev": true,
-          "requires": {
-            "is-buffer": "^1.1.5"
-          }
-        }
-      }
-    },
-    "to-regex": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz",
-      "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=",
-      "dev": true,
-      "requires": {
-        "define-property": "^2.0.2",
-        "extend-shallow": "^3.0.2",
-        "regex-not": "^1.0.2",
-        "safe-regex": "^1.1.0"
-      }
-    },
-    "to-regex-range": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz",
-      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
-      "dev": true,
-      "requires": {
-        "is-number": "^3.0.0",
-        "repeat-string": "^1.6.1"
-      }
-    },
-    "toidentifier": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz",
-      "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=",
-      "dev": true
-    },
-    "toposort": {
-      "version": "1.0.7",
-      "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz",
-      "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
-      "dev": true
-    },
-    "tough-cookie": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1584646121003&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz",
-      "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=",
-      "dev": true,
-      "requires": {
-        "psl": "^1.1.28",
-        "punycode": "^2.1.1"
-      }
-    },
-    "trim-newlines": {
-      "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-1.0.0.tgz?cache=0&sync_timestamp=1619005721489&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-1.0.0.tgz",
-      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
-      "dev": true
-    },
-    "true-case-path": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz",
-      "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=",
-      "dev": true,
-      "requires": {
-        "glob": "^7.1.2"
-      }
-    },
-    "tryer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz",
-      "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=",
-      "dev": true
-    },
-    "ts-pnp": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz",
-      "integrity": "sha1-pQCtCEsHmPHDBxrzkeZZEshrypI=",
-      "dev": true
-    },
-    "tsconfig-paths": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npm.taobao.org/tsconfig-paths/download/tsconfig-paths-3.9.0.tgz",
-      "integrity": "sha1-CYVHpsREiAfo/Ljq4IEGTumjyQs=",
-      "dev": true,
-      "requires": {
-        "@types/json5": "^0.0.29",
-        "json5": "^1.0.1",
-        "minimist": "^1.2.0",
-        "strip-bom": "^3.0.0"
-      },
-      "dependencies": {
-        "json5": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz",
-          "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        }
-      }
-    },
-    "tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz",
-      "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=",
-      "dev": true
-    },
-    "tty-browserify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz",
-      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
-      "dev": true
-    },
-    "tunnel-agent": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
-      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "tweetnacl": {
-      "version": "0.14.5",
-      "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581364203962&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz",
-      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
-      "dev": true
-    },
-    "type-check": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz",
-      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "~1.1.2"
-      }
-    },
-    "type-fest": {
-      "version": "0.6.0",
-      "resolved": "https://registry.nlark.com/type-fest/download/type-fest-0.6.0.tgz",
-      "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
-      "dev": true
-    },
-    "type-is": {
-      "version": "1.6.18",
-      "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz",
-      "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=",
-      "dev": true,
-      "requires": {
-        "media-typer": "0.3.0",
-        "mime-types": "~2.1.24"
-      }
-    },
-    "typedarray": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz",
-      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
-      "dev": true
-    },
-    "uglify-js": {
-      "version": "3.4.10",
-      "resolved": "https://registry.nlark.com/uglify-js/download/uglify-js-3.4.10.tgz",
-      "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=",
-      "dev": true,
-      "requires": {
-        "commander": "~2.19.0",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "commander": {
-          "version": "2.19.0",
-          "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1616364009866&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz",
-          "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "unbox-primitive": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706302651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz",
-      "integrity": "sha1-CF4hViXsMWJXTciFmr7nilmxRHE=",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1",
-        "has-bigints": "^1.0.1",
-        "has-symbols": "^1.0.2",
-        "which-boxed-primitive": "^1.0.2"
-      }
-    },
-    "unicode-canonical-property-names-ecmascript": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
-      "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=",
-      "dev": true
-    },
-    "unicode-match-property-ecmascript": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz",
-      "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=",
-      "dev": true,
-      "requires": {
-        "unicode-canonical-property-names-ecmascript": "^1.0.4",
-        "unicode-property-aliases-ecmascript": "^1.0.4"
-      }
-    },
-    "unicode-match-property-value-ecmascript": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz",
-      "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=",
-      "dev": true
-    },
-    "unicode-property-aliases-ecmascript": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945910569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz",
-      "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=",
-      "dev": true
-    },
-    "union-value": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz",
-      "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=",
-      "dev": true,
-      "requires": {
-        "arr-union": "^3.1.0",
-        "get-value": "^2.0.6",
-        "is-extendable": "^0.1.1",
-        "set-value": "^2.0.1"
-      }
-    },
-    "uniq": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz",
-      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
-      "dev": true
-    },
-    "uniqs": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz",
-      "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
-      "dev": true
-    },
-    "unique-filename": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz",
-      "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=",
-      "dev": true,
-      "requires": {
-        "unique-slug": "^2.0.0"
-      }
-    },
-    "unique-slug": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz",
-      "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=",
-      "dev": true,
-      "requires": {
-        "imurmurhash": "^0.1.4"
-      }
-    },
-    "universalify": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1603179967633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz",
-      "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=",
-      "dev": true
-    },
-    "unpipe": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz",
-      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
-      "dev": true
-    },
-    "unquote": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz",
-      "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
-      "dev": true
-    },
-    "unset-value": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz?cache=0&sync_timestamp=1616088539233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funset-value%2Fdownload%2Funset-value-1.0.0.tgz",
-      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
-      "dev": true,
-      "requires": {
-        "has-value": "^0.3.1",
-        "isobject": "^3.0.0"
-      },
-      "dependencies": {
-        "has-value": {
-          "version": "0.3.1",
-          "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz",
-          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
-          "dev": true,
-          "requires": {
-            "get-value": "^2.0.3",
-            "has-values": "^0.1.4",
-            "isobject": "^2.0.0"
-          },
-          "dependencies": {
-            "isobject": {
-              "version": "2.1.0",
-              "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz",
-              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
-              "dev": true,
-              "requires": {
-                "isarray": "1.0.0"
-              }
-            }
-          }
-        },
-        "has-values": {
-          "version": "0.1.4",
-          "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz",
-          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
-          "dev": true
-        }
-      }
-    },
-    "upath": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz?cache=0&sync_timestamp=1604768535464&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupath%2Fdownload%2Fupath-1.2.0.tgz",
-      "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=",
-      "dev": true
-    },
-    "upper-case": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz",
-      "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
-      "dev": true
-    },
-    "uri-js": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237624359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz",
-      "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=",
-      "dev": true,
-      "requires": {
-        "punycode": "^2.1.0"
-      }
-    },
-    "urix": {
-      "version": "0.1.0",
-      "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz",
-      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
-      "dev": true
-    },
-    "url": {
-      "version": "0.11.0",
-      "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz",
-      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
-      "dev": true,
-      "requires": {
-        "punycode": "1.3.2",
-        "querystring": "0.2.0"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "1.3.2",
-          "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz",
-          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
-          "dev": true
-        }
-      }
-    },
-    "url-loader": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-2.3.0.tgz?cache=0&sync_timestamp=1602252626029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-loader%2Fdownload%2Furl-loader-2.3.0.tgz",
-      "integrity": "sha1-4OLvZY8APvuMpBsPP/v3a6uIZYs=",
-      "dev": true,
-      "requires": {
-        "loader-utils": "^1.2.3",
-        "mime": "^2.4.4",
-        "schema-utils": "^2.5.0"
-      }
-    },
-    "url-parse": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.5.1.tgz?cache=0&sync_timestamp=1613660079745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furl-parse%2Fdownload%2Furl-parse-1.5.1.tgz",
-      "integrity": "sha1-1fqYkK+KXh8nSiyYN2UQ9kJfbjs=",
-      "dev": true,
-      "requires": {
-        "querystringify": "^2.1.1",
-        "requires-port": "^1.0.0"
-      }
-    },
-    "use": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz",
-      "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=",
-      "dev": true
-    },
-    "util": {
-      "version": "0.11.1",
-      "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz",
-      "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=",
-      "dev": true,
-      "requires": {
-        "inherits": "2.0.3"
-      },
-      "dependencies": {
-        "inherits": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
-          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-          "dev": true
-        }
-      }
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
-      "dev": true
-    },
-    "util.promisify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&sync_timestamp=1610159895694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz",
-      "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.17.2",
-        "has-symbols": "^1.0.1",
-        "object.getownpropertydescriptors": "^2.1.0"
-      }
-    },
-    "utila": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz",
-      "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
-      "dev": true
-    },
-    "utils-merge": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz",
-      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
-      "dev": true
-    },
-    "uuid": {
-      "version": "3.4.0",
-      "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1607460081656&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz",
-      "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=",
-      "dev": true
-    },
-    "v8-compile-cache": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz?cache=0&sync_timestamp=1614993639567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.3.0.tgz",
-      "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=",
-      "dev": true
-    },
-    "validate-npm-package-license": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz",
-      "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
-      "dev": true,
-      "requires": {
-        "spdx-correct": "^3.0.0",
-        "spdx-expression-parse": "^3.0.0"
-      }
-    },
-    "vary": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz",
-      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
-      "dev": true
-    },
-    "vendors": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1615203425696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz",
-      "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=",
-      "dev": true
-    },
-    "verror": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
-      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0",
-        "core-util-is": "1.0.2",
-        "extsprintf": "^1.2.0"
-      }
-    },
-    "vm-browserify": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870717730&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz",
-      "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=",
-      "dev": true
-    },
-    "vue": {
-      "version": "2.6.12",
-      "resolved": "https://registry.nlark.com/vue/download/vue-2.6.12.tgz?cache=0&sync_timestamp=1620856192360&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue%2Fdownload%2Fvue-2.6.12.tgz",
-      "integrity": "sha1-9evU+mvShpQD4pqJau1JBEVskSM="
-    },
-    "vue-cli-plugin-element-ui": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npm.taobao.org/vue-cli-plugin-element-ui/download/vue-cli-plugin-element-ui-1.1.4.tgz",
-      "integrity": "sha1-gwdkDYUjC6YeFekmh59pW6jurt8=",
-      "dev": true
-    },
-    "vue-clipboard2": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.3.1.tgz",
-      "integrity": "sha1-blUft704SImyiw2jsSKJ7WvKSJQ=",
-      "requires": {
-        "clipboard": "^2.0.0"
-      }
-    },
-    "vue-eslint-parser": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.6.0.tgz?cache=0&sync_timestamp=1614679548045&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.6.0.tgz",
-      "integrity": "sha1-AeoaKTL1gf8kQzZWXXEoAfj3JWE=",
-      "dev": true,
-      "requires": {
-        "debug": "^4.1.1",
-        "eslint-scope": "^5.0.0",
-        "eslint-visitor-keys": "^1.1.0",
-        "espree": "^6.2.1",
-        "esquery": "^1.4.0",
-        "lodash": "^4.17.15"
-      },
-      "dependencies": {
-        "eslint-scope": {
-          "version": "5.1.1",
-          "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.1.tgz?cache=0&sync_timestamp=1599933651660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.1.tgz",
-          "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=",
-          "dev": true,
-          "requires": {
-            "esrecurse": "^4.3.0",
-            "estraverse": "^4.1.1"
-          }
-        }
-      }
-    },
-    "vue-hot-reload-api": {
-      "version": "2.3.4",
-      "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz",
-      "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
-      "dev": true
-    },
-    "vue-loader": {
-      "version": "15.9.7",
-      "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-15.9.7.tgz",
-      "integrity": "sha1-FbBXdcPgw4QHZ5OTws5t9nOwEEQ=",
-      "dev": true,
-      "requires": {
-        "@vue/component-compiler-utils": "^3.1.0",
-        "hash-sum": "^1.0.2",
-        "loader-utils": "^1.1.0",
-        "vue-hot-reload-api": "^2.3.0",
-        "vue-style-loader": "^4.1.0"
-      },
-      "dependencies": {
-        "hash-sum": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
-          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
-          "dev": true
-        }
-      }
-    },
-    "vue-router": {
-      "version": "3.5.1",
-      "resolved": "https://registry.nlark.com/vue-router/download/vue-router-3.5.1.tgz?cache=0&sync_timestamp=1620899536020&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-router%2Fdownload%2Fvue-router-3.5.1.tgz",
-      "integrity": "sha1-7fPPSQeVLR4Fg+B5I3Igxf9utsk="
-    },
-    "vue-style-loader": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.3.tgz",
-      "integrity": "sha1-bVWGOlH6dXqyTonZNxRlByqnvDU=",
-      "dev": true,
-      "requires": {
-        "hash-sum": "^1.0.2",
-        "loader-utils": "^1.0.2"
-      },
-      "dependencies": {
-        "hash-sum": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
-          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
-          "dev": true
-        }
-      }
-    },
-    "vue-template-compiler": {
-      "version": "2.6.12",
-      "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.12.tgz?cache=0&sync_timestamp=1597927407682&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-template-compiler%2Fdownload%2Fvue-template-compiler-2.6.12.tgz",
-      "integrity": "sha1-lH7XGWdEyKUoXr4SM/6WBDf8xX4=",
-      "dev": true,
-      "requires": {
-        "de-indent": "^1.0.2",
-        "he": "^1.1.0"
-      }
-    },
-    "vue-template-es2015-compiler": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz",
-      "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
-      "dev": true
-    },
-    "vuescroll": {
-      "version": "4.17.3",
-      "resolved": "https://registry.npm.taobao.org/vuescroll/download/vuescroll-4.17.3.tgz",
-      "integrity": "sha1-4cKTcqAH4N/wzua0UVeD1Dkk+eE="
-    },
-    "vuex": {
-      "version": "3.6.2",
-      "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.6.2.tgz?cache=0&sync_timestamp=1612277384353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuex%2Fdownload%2Fvuex-3.6.2.tgz",
-      "integrity": "sha1-I2vAhqhww655lG8QfxbeWdWJXnE="
-    },
-    "watch-size": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/watch-size/download/watch-size-2.0.0.tgz",
-      "integrity": "sha1-CW7ijQNlvX6gPZyL8fL1CnO+FHQ="
-    },
-    "watchpack": {
-      "version": "1.7.5",
-      "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.5.tgz",
-      "integrity": "sha1-EmfmxV4Lm1vkTCAjrtVDeiwmxFM=",
-      "dev": true,
-      "requires": {
-        "chokidar": "^3.4.1",
-        "graceful-fs": "^4.1.2",
-        "neo-async": "^2.5.0",
-        "watchpack-chokidar2": "^2.0.1"
-      }
-    },
-    "watchpack-chokidar2": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.1.tgz?cache=0&sync_timestamp=1604989128919&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwatchpack-chokidar2%2Fdownload%2Fwatchpack-chokidar2-2.0.1.tgz",
-      "integrity": "sha1-OFAAcu5uzmbzdpk2lQ6hdxvhyVc=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "chokidar": "^2.1.8"
-      },
-      "dependencies": {
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.nlark.com/anymatch/download/anymatch-2.0.0.tgz",
-          "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          },
-          "dependencies": {
-            "normalize-path": {
-              "version": "2.1.1",
-              "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
-              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "remove-trailing-separator": "^1.0.1"
-              }
-            }
-          }
-        },
-        "binary-extensions": {
-          "version": "1.13.1",
-          "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299308660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz",
-          "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
-          "dev": true,
-          "optional": true
-        },
-        "chokidar": {
-          "version": "2.1.8",
-          "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz",
-          "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.1",
-            "braces": "^2.3.2",
-            "fsevents": "^1.2.7",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.3",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "normalize-path": "^3.0.0",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.2.1",
-            "upath": "^1.1.1"
-          }
-        },
-        "fsevents": {
-          "version": "1.2.13",
-          "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz",
-          "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "bindings": "^1.5.0",
-            "nan": "^2.12.1"
-          }
-        },
-        "glob-parent": {
-          "version": "3.1.0",
-          "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz",
-          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "is-glob": "^3.1.0",
-            "path-dirname": "^1.0.0"
-          },
-          "dependencies": {
-            "is-glob": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
-              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "is-extglob": "^2.1.0"
-              }
-            }
-          }
-        },
-        "is-binary-path": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
-          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "binary-extensions": "^1.0.0"
-          }
-        },
-        "readdirp": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz",
-          "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "graceful-fs": "^4.1.11",
-            "micromatch": "^3.1.10",
-            "readable-stream": "^2.0.2"
-          }
-        }
-      }
-    },
-    "wbuf": {
-      "version": "1.7.3",
-      "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz",
-      "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=",
-      "dev": true,
-      "requires": {
-        "minimalistic-assert": "^1.0.0"
-      }
-    },
-    "wcwidth": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz",
-      "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
-      "dev": true,
-      "requires": {
-        "defaults": "^1.0.3"
-      }
-    },
-    "webpack": {
-      "version": "4.46.0",
-      "resolved": "https://registry.nlark.com/webpack/download/webpack-4.46.0.tgz?cache=0&sync_timestamp=1620663741729&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwebpack%2Fdownload%2Fwebpack-4.46.0.tgz",
-      "integrity": "sha1-v5tEBOogoHNgXgoBHRiNd8tq1UI=",
-      "dev": true,
-      "requires": {
-        "@webassemblyjs/ast": "1.9.0",
-        "@webassemblyjs/helper-module-context": "1.9.0",
-        "@webassemblyjs/wasm-edit": "1.9.0",
-        "@webassemblyjs/wasm-parser": "1.9.0",
-        "acorn": "^6.4.1",
-        "ajv": "^6.10.2",
-        "ajv-keywords": "^3.4.1",
-        "chrome-trace-event": "^1.0.2",
-        "enhanced-resolve": "^4.5.0",
-        "eslint-scope": "^4.0.3",
-        "json-parse-better-errors": "^1.0.2",
-        "loader-runner": "^2.4.0",
-        "loader-utils": "^1.2.3",
-        "memory-fs": "^0.4.1",
-        "micromatch": "^3.1.10",
-        "mkdirp": "^0.5.3",
-        "neo-async": "^2.6.1",
-        "node-libs-browser": "^2.2.1",
-        "schema-utils": "^1.0.0",
-        "tapable": "^1.1.3",
-        "terser-webpack-plugin": "^1.4.3",
-        "watchpack": "^1.7.4",
-        "webpack-sources": "^1.4.1"
-      },
-      "dependencies": {
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
-          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        }
-      }
-    },
-    "webpack-bundle-analyzer": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.9.0.tgz",
-      "integrity": "sha1-9vlNsQj7V05BWtMT3kGicH0z7zw=",
-      "dev": true,
-      "requires": {
-        "acorn": "^7.1.1",
-        "acorn-walk": "^7.1.1",
-        "bfj": "^6.1.1",
-        "chalk": "^2.4.1",
-        "commander": "^2.18.0",
-        "ejs": "^2.6.1",
-        "express": "^4.16.3",
-        "filesize": "^3.6.1",
-        "gzip-size": "^5.0.0",
-        "lodash": "^4.17.19",
-        "mkdirp": "^0.5.1",
-        "opener": "^1.5.1",
-        "ws": "^6.0.0"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "7.4.1",
-          "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz?cache=0&sync_timestamp=1620134123724&other_urls=https%3A%2F%2Fregistry.nlark.com%2Facorn%2Fdownload%2Facorn-7.4.1.tgz",
-          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
-          "dev": true
-        }
-      }
-    },
-    "webpack-chain": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-6.5.1.tgz",
-      "integrity": "sha1-TycoTLu2N+PI+970Pu9YjU2GEgY=",
-      "dev": true,
-      "requires": {
-        "deepmerge": "^1.5.2",
-        "javascript-stringify": "^2.0.1"
-      }
-    },
-    "webpack-dev-middleware": {
-      "version": "3.7.3",
-      "resolved": "https://registry.nlark.com/webpack-dev-middleware/download/webpack-dev-middleware-3.7.3.tgz",
-      "integrity": "sha1-Bjk3KxQyYuK4SrldO5GnWXBhwsU=",
-      "dev": true,
-      "requires": {
-        "memory-fs": "^0.4.1",
-        "mime": "^2.4.4",
-        "mkdirp": "^0.5.1",
-        "range-parser": "^1.2.1",
-        "webpack-log": "^2.0.0"
-      }
-    },
-    "webpack-dev-server": {
-      "version": "3.11.2",
-      "resolved": "https://registry.nlark.com/webpack-dev-server/download/webpack-dev-server-3.11.2.tgz",
-      "integrity": "sha1-aV687Xakkp8NXef9c/r+GF/jNwg=",
-      "dev": true,
-      "requires": {
-        "ansi-html": "0.0.7",
-        "bonjour": "^3.5.0",
-        "chokidar": "^2.1.8",
-        "compression": "^1.7.4",
-        "connect-history-api-fallback": "^1.6.0",
-        "debug": "^4.1.1",
-        "del": "^4.1.1",
-        "express": "^4.17.1",
-        "html-entities": "^1.3.1",
-        "http-proxy-middleware": "0.19.1",
-        "import-local": "^2.0.0",
-        "internal-ip": "^4.3.0",
-        "ip": "^1.1.5",
-        "is-absolute-url": "^3.0.3",
-        "killable": "^1.0.1",
-        "loglevel": "^1.6.8",
-        "opn": "^5.5.0",
-        "p-retry": "^3.0.1",
-        "portfinder": "^1.0.26",
-        "schema-utils": "^1.0.0",
-        "selfsigned": "^1.10.8",
-        "semver": "^6.3.0",
-        "serve-index": "^1.9.1",
-        "sockjs": "^0.3.21",
-        "sockjs-client": "^1.5.0",
-        "spdy": "^4.0.2",
-        "strip-ansi": "^3.0.1",
-        "supports-color": "^6.1.0",
-        "url": "^0.11.0",
-        "webpack-dev-middleware": "^3.7.2",
-        "webpack-log": "^2.0.0",
-        "ws": "^6.2.1",
-        "yargs": "^13.3.2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
-          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-          "dev": true
-        },
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.nlark.com/anymatch/download/anymatch-2.0.0.tgz",
-          "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=",
-          "dev": true,
-          "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          },
-          "dependencies": {
-            "normalize-path": {
-              "version": "2.1.1",
-              "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz",
-              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-              "dev": true,
-              "requires": {
-                "remove-trailing-separator": "^1.0.1"
-              }
-            }
-          }
-        },
-        "binary-extensions": {
-          "version": "1.13.1",
-          "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1610299308660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz",
-          "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=",
-          "dev": true
-        },
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603923709404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
-          "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
-          "dev": true
-        },
-        "chokidar": {
-          "version": "2.1.8",
-          "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1610719440699&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz",
-          "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=",
-          "dev": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.1",
-            "braces": "^2.3.2",
-            "fsevents": "^1.2.7",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.3",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "normalize-path": "^3.0.0",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.2.1",
-            "upath": "^1.1.1"
-          }
-        },
-        "cliui": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz?cache=0&sync_timestamp=1604880033053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-5.0.0.tgz",
-          "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=",
-          "dev": true,
-          "requires": {
-            "string-width": "^3.1.0",
-            "strip-ansi": "^5.2.0",
-            "wrap-ansi": "^5.1.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "4.1.0",
-              "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz",
-              "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "5.2.0",
-              "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-              "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^4.1.0"
-              }
-            }
-          }
-        },
-        "emoji-regex": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
-          "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
-          "dev": true
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597169842138&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
-          "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "fsevents": {
-          "version": "1.2.13",
-          "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz",
-          "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "bindings": "^1.5.0",
-            "nan": "^2.12.1"
-          }
-        },
-        "glob-parent": {
-          "version": "3.1.0",
-          "resolved": "https://registry.nlark.com/glob-parent/download/glob-parent-3.1.0.tgz",
-          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
-          "dev": true,
-          "requires": {
-            "is-glob": "^3.1.0",
-            "path-dirname": "^1.0.0"
-          },
-          "dependencies": {
-            "is-glob": {
-              "version": "3.1.0",
-              "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz",
-              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
-              "dev": true,
-              "requires": {
-                "is-extglob": "^2.1.0"
-              }
-            }
-          }
-        },
-        "http-proxy-middleware": {
-          "version": "0.19.1",
-          "resolved": "https://registry.nlark.com/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz",
-          "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=",
-          "dev": true,
-          "requires": {
-            "http-proxy": "^1.17.0",
-            "is-glob": "^4.0.0",
-            "lodash": "^4.17.11",
-            "micromatch": "^3.1.10"
-          }
-        },
-        "is-absolute-url": {
-          "version": "3.0.3",
-          "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz",
-          "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=",
-          "dev": true
-        },
-        "is-binary-path": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz",
-          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-          "dev": true,
-          "requires": {
-            "binary-extensions": "^1.0.0"
-          }
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
-          "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
-          "dev": true,
-          "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
-          }
-        },
-        "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
-          "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
-          "dev": true,
-          "requires": {
-            "p-limit": "^2.0.0"
-          }
-        },
-        "path-exists": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz",
-          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-          "dev": true
-        },
-        "readdirp": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz",
-          "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.11",
-            "micromatch": "^3.1.10",
-            "readable-stream": "^2.0.2"
-          }
-        },
-        "schema-utils": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz",
-          "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=",
-          "dev": true,
-          "requires": {
-            "ajv": "^6.1.0",
-            "ajv-errors": "^1.0.0",
-            "ajv-keywords": "^3.1.0"
-          }
-        },
-        "string-width": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
-          "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
-          "dev": true,
-          "requires": {
-            "emoji-regex": "^7.0.1",
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^5.1.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "4.1.0",
-              "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz",
-              "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "5.2.0",
-              "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-              "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^4.1.0"
-              }
-            }
-          }
-        },
-        "strip-ansi": {
-          "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
-          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^2.0.0"
-          }
-        },
-        "supports-color": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
-          "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        },
-        "wrap-ansi": {
-          "version": "5.1.0",
-          "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-5.1.0.tgz",
-          "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^3.2.0",
-            "string-width": "^3.0.0",
-            "strip-ansi": "^5.0.0"
-          },
-          "dependencies": {
-            "ansi-regex": {
-              "version": "4.1.0",
-              "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-4.1.0.tgz",
-              "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
-              "dev": true
-            },
-            "strip-ansi": {
-              "version": "5.2.0",
-              "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
-              "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^4.1.0"
-              }
-            }
-          }
-        },
-        "yargs": {
-          "version": "13.3.2",
-          "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz",
-          "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
-          "dev": true,
-          "requires": {
-            "cliui": "^5.0.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^3.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^13.1.2"
-          }
-        },
-        "yargs-parser": {
-          "version": "13.1.2",
-          "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1615405185480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz",
-          "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "webpack-log": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz",
-      "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=",
-      "dev": true,
-      "requires": {
-        "ansi-colors": "^3.0.0",
-        "uuid": "^3.3.2"
-      }
-    },
-    "webpack-merge": {
-      "version": "4.2.2",
-      "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz",
-      "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.15"
-      }
-    },
-    "webpack-sources": {
-      "version": "1.4.3",
-      "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz?cache=0&sync_timestamp=1603965311142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-sources%2Fdownload%2Fwebpack-sources-1.4.3.tgz",
-      "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=",
-      "dev": true,
-      "requires": {
-        "source-list-map": "^2.0.0",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1571657176668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz",
-          "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
-          "dev": true
-        }
-      }
-    },
-    "websocket-driver": {
-      "version": "0.7.4",
-      "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz?cache=0&sync_timestamp=1591288600527&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.7.4.tgz",
-      "integrity": "sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A=",
-      "dev": true,
-      "requires": {
-        "http-parser-js": ">=0.5.1",
-        "safe-buffer": ">=5.1.0",
-        "websocket-extensions": ">=0.1.1"
-      }
-    },
-    "websocket-extensions": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz?cache=0&sync_timestamp=1591103014229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz",
-      "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=",
-      "dev": true
-    },
-    "which": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116720213&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz",
-      "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
-      "dev": true,
-      "requires": {
-        "isexe": "^2.0.0"
-      }
-    },
-    "which-boxed-primitive": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/which-boxed-primitive/download/which-boxed-primitive-1.0.2.tgz?cache=0&sync_timestamp=1614855347940&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich-boxed-primitive%2Fdownload%2Fwhich-boxed-primitive-1.0.2.tgz",
-      "integrity": "sha1-E3V7yJsgmwSf5dhkMOIc9AqJqOY=",
-      "dev": true,
-      "requires": {
-        "is-bigint": "^1.0.1",
-        "is-boolean-object": "^1.1.0",
-        "is-number-object": "^1.0.4",
-        "is-string": "^1.0.5",
-        "is-symbol": "^1.0.3"
-      }
-    },
-    "which-module": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz",
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-      "dev": true
-    },
-    "wide-align": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz",
-      "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.2 || 2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1618558823901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz",
-          "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        }
-      }
-    },
-    "word-wrap": {
-      "version": "1.2.3",
-      "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz",
-      "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=",
-      "dev": true
-    },
-    "worker-farm": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz",
-      "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=",
-      "dev": true,
-      "requires": {
-        "errno": "~0.1.7"
-      }
-    },
-    "wrap-ansi": {
-      "version": "7.0.0",
-      "resolved": "https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz",
-      "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^4.0.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
-          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
-          "dev": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
-          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
-          "dev": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
-          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
-          "dev": true
-        }
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz?cache=0&sync_timestamp=1619133505879&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrappy%2Fdownload%2Fwrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-      "dev": true
-    },
-    "write": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npm.taobao.org/write/download/write-1.0.3.tgz",
-      "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=",
-      "dev": true,
-      "requires": {
-        "mkdirp": "^0.5.1"
-      }
-    },
-    "ws": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1618734243525&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz",
-      "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=",
-      "dev": true,
-      "requires": {
-        "async-limiter": "~1.0.0"
-      }
-    },
-    "xtend": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
-      "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=",
-      "dev": true
-    },
-    "y18n": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.3.tgz",
-      "integrity": "sha1-tfJZyCzW4zaSHv17/Yv1YN6e7t8=",
-      "dev": true
-    },
-    "yallist": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz",
-      "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=",
-      "dev": true
-    },
-    "yargs": {
-      "version": "16.2.0",
-      "resolved": "https://registry.nlark.com/yargs/download/yargs-16.2.0.tgz?cache=0&sync_timestamp=1620086644940&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-16.2.0.tgz",
-      "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=",
-      "dev": true,
-      "requires": {
-        "cliui": "^7.0.2",
-        "escalade": "^3.1.1",
-        "get-caller-file": "^2.0.5",
-        "require-directory": "^2.1.1",
-        "string-width": "^4.2.0",
-        "y18n": "^5.0.5",
-        "yargs-parser": "^20.2.2"
-      },
-      "dependencies": {
-        "cliui": {
-          "version": "7.0.4",
-          "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-7.0.4.tgz?cache=0&sync_timestamp=1604880033053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcliui%2Fdownload%2Fcliui-7.0.4.tgz",
-          "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
-          "dev": true,
-          "requires": {
-            "string-width": "^4.2.0",
-            "strip-ansi": "^6.0.0",
-            "wrap-ansi": "^7.0.0"
-          }
-        },
-        "y18n": {
-          "version": "5.0.8",
-          "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-5.0.8.tgz",
-          "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=",
-          "dev": true
-        }
-      }
-    },
-    "yargs-parser": {
-      "version": "20.2.7",
-      "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-20.2.7.tgz?cache=0&sync_timestamp=1615405185480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-20.2.7.tgz",
-      "integrity": "sha1-Yd+FwRPt+1p6TjbriqYO9CPLyQo=",
-      "dev": true
-    },
-    "yorkie": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz",
-      "integrity": "sha1-kkEZEtQ1IU4SxRwq4Qk+VLa7g9k=",
-      "dev": true,
-      "requires": {
-        "execa": "^0.8.0",
-        "is-ci": "^1.0.10",
-        "normalize-path": "^1.0.0",
-        "strip-indent": "^2.0.0"
-      },
-      "dependencies": {
-        "cross-spawn": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz",
-          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
-          "dev": true,
-          "requires": {
-            "lru-cache": "^4.0.1",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          }
-        },
-        "execa": {
-          "version": "0.8.0",
-          "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1606971018065&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz",
-          "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^5.0.1",
-            "get-stream": "^3.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "get-stream": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-3.0.0.tgz",
-          "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-          "dev": true
-        },
-        "lru-cache": {
-          "version": "4.1.5",
-          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427582110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz",
-          "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
-          "dev": true,
-          "requires": {
-            "pseudomap": "^1.0.2",
-            "yallist": "^2.1.2"
-          }
-        },
-        "normalize-path": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz",
-          "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=",
-          "dev": true
-        },
-        "yallist": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz",
-          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
-          "dev": true
-        }
-      }
-    },
-    "zrender": {
-      "version": "5.4.4",
-      "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz",
-      "integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==",
-      "requires": {
-        "tslib": "2.3.0"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
-          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
-        }
-      }
-    }
-  }
-}
diff --git a/platform/package.json b/platform/package.json
deleted file mode 100644
index 797990f..0000000
--- a/platform/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
-  "name": "intelligent_manufacture",
-  "version": "1.0.0",
-  "private": true,
-  "scripts": {
-    "serve": "vue-cli-service serve",
-    "build:pro": "vue-cli-service build",
-    "build:pro_v2": "vue-cli-service build --mode production_v2",
-    "build:dev": "vue-cli-service build --mode staging",
-    "lint": "vue-cli-service lint",
-    "fix": "eslint --ext .js,.vue src --fix"
-  },
-  "dependencies": {
-    "@riophae/vue-treeselect": "^0.4.0",
-    "axios": "^0.21.1",
-    "core-js": "^3.6.5",
-    "echarts": "^5.4.3",
-    "element-ui": "^2.3.6",
-    "js-cookie": "^2.2.1",
-    "js-file-download": "^0.4.12",
-    "vue": "^2.6.11",
-    "vue-clipboard2": "^0.3.1",
-    "vue-router": "^3.5.1",
-    "vuescroll": "^4.17.3",
-    "vuex": "^3.4.0"
-  },
-  "devDependencies": {
-    "@vue/cli-plugin-babel": "~4.5.0",
-    "@vue/cli-plugin-eslint": "~4.5.0",
-    "@vue/cli-plugin-router": "~4.5.0",
-    "@vue/cli-plugin-vuex": "~4.5.0",
-    "@vue/cli-service": "~4.5.0",
-    "@vue/eslint-config-standard": "^5.1.2",
-    "babel-eslint": "^10.1.0",
-    "eslint": "^6.7.2",
-    "eslint-plugin-import": "^2.20.2",
-    "eslint-plugin-node": "^11.1.0",
-    "eslint-plugin-promise": "^4.2.1",
-    "eslint-plugin-standard": "^4.0.0",
-    "eslint-plugin-vue": "^6.2.2",
-    "lint-staged": "^9.5.0",
-    "node-sass": "^4.12.0",
-    "sass-loader": "^8.0.2",
-    "vue-cli-plugin-element-ui": "~1.1.4",
-    "vue-template-compiler": "^2.6.11"
-  },
-  "eslintConfig": {
-    "root": true,
-    "env": {
-      "node": true
-    },
-    "extends": [
-      "plugin:vue/essential",
-      "@vue/standard"
-    ],
-    "parserOptions": {
-      "parser": "babel-eslint"
-    },
-    "rules": {
-      "indent": [
-        "error",
-        2
-      ],
-      "generator-star-spacing": "off",
-      "no-debugger": "error"
-    }
-  },
-  "browserslist": [
-    "> 1%",
-    "last 2 versions",
-    "not dead"
-  ],
-  "gitHooks": {
-    "pre-commit": "lint-staged"
-  },
-  "lint-staged": {
-    "*.{js,jsx,vue}": [
-      "vue-cli-service lint",
-      "git add"
-    ]
-  }
-}
diff --git a/platform/public/avatar/man.png b/platform/public/avatar/man.png
deleted file mode 100644
index a84beb9..0000000
--- a/platform/public/avatar/man.png
+++ /dev/null
Binary files differ
diff --git a/platform/public/avatar/woman.png b/platform/public/avatar/woman.png
deleted file mode 100644
index eef8695..0000000
--- a/platform/public/avatar/woman.png
+++ /dev/null
Binary files differ
diff --git a/platform/public/favicon.ico b/platform/public/favicon.ico
deleted file mode 100644
index c6ff5db..0000000
--- a/platform/public/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/platform/public/index.html b/platform/public/index.html
deleted file mode 100644
index 8314eac..0000000
--- a/platform/public/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="">
-  <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width,initial-scale=1.0">
-    <link rel="icon" href="<%= BASE_URL %>bitbug_favicon.ico">
-    <title>浜戞槗淇�</title>
-  </head>
-  <body>
-    <noscript>
-      <strong>We're sorry but 浜戞槗淇� doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
-    </noscript>
-    <div id="app"></div>
-    <!-- built files will be auto injected -->
-  </body>
-</html>
diff --git a/platform/src/App.vue b/platform/src/App.vue
deleted file mode 100644
index d22b2c9..0000000
--- a/platform/src/App.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-<template>
-  <router-view/>
-</template>
-
-<style lang="scss">
-@import "assets/style/lib.css";
-// 寮曞叆鍏ㄥ眬鏍峰紡
-@import "assets/style/style";
-// 寮曞叆绯荤粺鍐呯疆鍥炬爣
-@import "assets/icons/system/index";
-// 寮曞叆鑷畾涔夊浘鏍�
-@import "assets/icons/ext/index";
-.long-title-style {
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  -webkit-text-overflow: ellipsis;
-  overflow: hidden;
-}
-.el-tooltip__popper.is-dark {
-  max-width: 400px;
-}
-</style>
diff --git a/platform/src/api/business/company.js b/platform/src/api/business/company.js
index a109cd9..56d556d 100644
--- a/platform/src/api/business/company.js
+++ b/platform/src/api/business/company.js
@@ -17,8 +17,17 @@
     return request.post('/business/company/updateById', data)
 }
 
+<<<<<<< HEAD
 // 鏌ヨ鍏ㄩ儴鏁版嵁(璐﹀彿鍒嗛厤浼佷笟浣跨敤)
 export function pageAll (data) {
+=======
+
+export function pageAll (data) {
+    return request.post('/business/company/list', data)
+}
+// 鏌ヨ鍏ㄩ儴鏁版嵁(璐﹀彿鍒嗛厤浼佷笟浣跨敤)
+export function allForFp (data) {
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
     return request.post('/business/company/pageAll', data)
 }
 
diff --git a/platform/src/api/business/dispatchUnit.js b/platform/src/api/business/dispatchUnit.js
deleted file mode 100644
index bba7319..0000000
--- a/platform/src/api/business/dispatchUnit.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-    return request.post('/business/dispatchUnit/page', data, {
-        trim: true
-    })
-}
-
-// 鍒涘缓
-export function create (data) {
-    return request.post('/business/dispatchUnit/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-    return request.post('/business/dispatchUnit/updateById', data)
-}
-
-// 鏍规嵁ID鏌ヨ
-export function getById (id) {
-    return request.get(`/business/dispatchUnit/${id}`)
-}
-export function check (data) {
-    return request.post('/business/dispatchUnit/check', data)
-}
-export function checkWorktype (data) {
-    return request.post('/business/dispatchUnit/checkWorktype', data)
-}
-// 娣诲姞宸ョ
-export function createSolution (data) {
-    return request.post('/business/dispatchUnit/createSolution', data)
-}
-
-// 淇敼淇℃伅
-export function editDispatchUnit (data) {
-    return request.post('/business/dispatchUnit/editDispatchUnit', data)
-}
-
-// 鏁版嵁鍒楄〃
-export function findListByDTO (data) {
-    return request.post('/business/dispatchUnit/findListByDTO', data)
-}
diff --git a/platform/src/api/business/duWorktype.js b/platform/src/api/business/duWorktype.js
deleted file mode 100644
index ea873af..0000000
--- a/platform/src/api/business/duWorktype.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import request from '../../utils/request'
-
-// 鏍规嵁ID鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/business/duWorktype/delete/${id}`)
-}
diff --git a/platform/src/api/business/solutions.js b/platform/src/api/business/solutions.js
index 4d890c1..622b548 100644
--- a/platform/src/api/business/solutions.js
+++ b/platform/src/api/business/solutions.js
@@ -36,8 +36,11 @@
 export function listForCompany (data) {
     return request.post('/business/companySolution/listForCompany', data)
 }
+<<<<<<< HEAD
 
 // 鏍规嵁鍘嗗彶鐗堟湰鏌ヨ褰撳墠鏈�鏂板惎鐢ㄧ増鏈�
 export function getNewVersion (id) {
     return request.get(`/business/solutions/getNewVersion?solutionId=${id}`)
 }
+=======
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
diff --git a/platform/src/api/business/worktype.js b/platform/src/api/business/worktype.js
deleted file mode 100644
index c6fbbfc..0000000
--- a/platform/src/api/business/worktype.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import request from '../../utils/request'
-
-// 瀵煎叆妯℃澘
-export function importExcel (data) {
-    return request.post(`/business/worktype/importExcel`, data)
-}
-
-// 鏌ヨ鍏ㄩ儴宸ョ
-export function all (data) {
-    return request.post(`/business/worktype/list`, data)
-}
-
-// 鏍规嵁鏉′欢宸ョ鍒楄〃
-export function findListByDTO (data) {
-    return request.post('/business/worktype/findListByDTO', data)
-}
diff --git a/platform/src/api/system/common.js b/platform/src/api/system/common.js
deleted file mode 100644
index 7689187..0000000
--- a/platform/src/api/system/common.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import request from '@/utils/request'
-
-// 鑾峰彇鍥剧墖楠岃瘉鐮�
-export function getCaptcha () {
-  return request.get('/common/captcha')
-}
-
-// 鏍规嵁瀵嗙爜鐧诲綍
-export function loginByPassword (data) {
-  return request.post('/system/login', data)
-}
-
-// 鐭俊楠岃瘉鐮佺櫥褰�
-export function loginByPhone (data) {
-  return request.post('/system/loginByPhone', data)
-}
-
-// 鐧诲嚭
-export function logout (data) {
-  return request.post('/system/logout', data)
-}
-
-// 淇敼瀵嗙爜
-export function updatePwd (data) {
-  return request.post('/system/updatePwd', data)
-}
-
-// 鑾峰彇宸茬櫥褰曠殑鐢ㄦ埛淇℃伅
-export function getUserInfo () {
-  return request.get('/system/getUserInfo', {
-    autoLogin: false
-  })
-}
-
-// 鍝佺墝鍒楄〃鏌ヨ
-export function brand (data) {
-  return request.post('/business/brand/list', data)
-}
-
-// 绫诲埆鍒楄〃鏌ヨ
-export function category (data) {
-  return request.post('/business/category/list', data)
-}
-
-// 瀵煎叆妯℃澘
-export function importExcel (data) {
-  return request.post('/business/goods/importExcel', data)
-}
-
-// 涓婁紶鎺ュ彛
-export function upload (data) {
-  return request.post('/public/upload', data)
-}
-
-// 鍖哄煙鏍戝垪琛�
-export function findTreeList (data) {
-  return request.post('/business/areas/findTreeList', data)
-}
diff --git a/platform/src/api/system/dataPermission.js b/platform/src/api/system/dataPermission.js
deleted file mode 100644
index 095d70d..0000000
--- a/platform/src/api/system/dataPermission.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/dataPermission/page', data, {
-    trim: true
-  })
-}
-app
-// 鏌ヨ鏁版嵁鏉冮檺妯″潡
-export function fetchModules () {
-  return request.cache('DATA_PERMISSION_MODULES').get('/system/dataPermission/modules')
-}
-
-// 鏌ヨ鏁版嵁鏉冮檺绫诲瀷
-export function fetchTypes () {
-  return request.cache('DATA_PERMISSION_TYPES').get('/system/dataPermission/types')
-}
-
-// 鍒涘缓
-export function create (data) {
-  return request.post('/system/dataPermission/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/dataPermission/updateById', data)
-}
-
-// 淇敼鐘舵��
-export function updateStatus (data) {
-  return request.post('/system/dataPermission/updateStatus', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/dataPermission/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/dataPermission/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
diff --git a/platform/src/api/system/department.js b/platform/src/api/system/department.js
deleted file mode 100644
index e96f19f..0000000
--- a/platform/src/api/system/department.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ
-export function fetchTree () {
-  return request.post('/system/department/tree')
-}
-
-// 鏌ヨ閮ㄩ棬鐢ㄦ埛
-export function fetchUserList (data) {
-  return request.post('/system/department/users', data)
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/department/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/department/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/department/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/department/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
diff --git a/platform/src/api/system/dict.js b/platform/src/api/system/dict.js
deleted file mode 100644
index 08833cb..0000000
--- a/platform/src/api/system/dict.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/dict/page', data)
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/dict/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/dict/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/dict/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/dict/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
diff --git a/platform/src/api/system/dictData.js b/platform/src/api/system/dictData.js
deleted file mode 100644
index 1dc0133..0000000
--- a/platform/src/api/system/dictData.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/dictData/page', data)
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/dictData/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/dictData/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/dictData/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/dictData/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
diff --git a/platform/src/api/system/loginLog.js b/platform/src/api/system/loginLog.js
deleted file mode 100644
index 7103b4c..0000000
--- a/platform/src/api/system/loginLog.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/loginLog/page', data, {
-    trim: true
-  })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
-  return request.post('/system/loginLog/exportExcel', data, {
-    download: true,
-    trim: true
-  })
-}
diff --git a/platform/src/api/system/menu.js b/platform/src/api/system/menu.js
deleted file mode 100644
index 170973f..0000000
--- a/platform/src/api/system/menu.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ----骞冲彴鑿滃崟
-export function fetchTree () {
-  return request.post(`/system/menu/treeList/0`)
-}
-
-// 鏌ヨ----浼佷笟鑿滃崟
-export function fetchTree1 () {
-  return request.post(`/system/menu/treeList/1`)
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/menu/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/menu/updateById', data)
-}
-
-// 淇敼鐘舵��
-export function updateStatus (data) {
-  return request.post('/system/menu/updateStatus', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/menu/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/menu/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
-
-// 鏌ヨ鑿滃崟鏍�
-export function fetchMenuTree (type) {
-  return request.get('/system/menu/treeNodes?type='+type)
-}
-
-// 鎺掑簭
-export function sort (data) {
-  return request.post('/system/menu/updateSort', data)
-}
diff --git a/platform/src/api/system/monitor.js b/platform/src/api/system/monitor.js
deleted file mode 100644
index d8b3590..0000000
--- a/platform/src/api/system/monitor.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import request from '@/utils/request'
-
-// 鑾峰彇绯荤粺淇℃伅
-export function getSystemInfo () {
-  return request.get('/system/monitor/getSystemInfo')
-}
diff --git a/platform/src/api/system/permission.js b/platform/src/api/system/permission.js
deleted file mode 100644
index 2f3f92c..0000000
--- a/platform/src/api/system/permission.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/permission/page', data)
-}
-
-// 鏌ヨ鎵�鏈�
-export function fetchAll () {
-  return request.get('/system/permission/all')
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/permission/create', data, {
-    trim: true
-  })
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/permission/updateById', data, {
-    trim: true
-  })
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/permission/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/permission/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
diff --git a/platform/src/api/system/position.js b/platform/src/api/system/position.js
deleted file mode 100644
index fbc1edb..0000000
--- a/platform/src/api/system/position.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ鍒楄〃鏍�
-export function fetchTree (data) {
-  return request.post('/system/position/tree', data)
-}
-
-// 鏌ヨ鍒楄〃
-export function fetchList (data) {
-  return request.post('/system/position/list', data)
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/position/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/position/updateById', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/position/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/position/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
diff --git a/platform/src/api/system/role.js b/platform/src/api/system/role.js
deleted file mode 100644
index 5d9e34b..0000000
--- a/platform/src/api/system/role.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/role/page', data)
-}
-
-// 鏌ヨ鎵�鏈�
-export function fetchAll () {
-  return request.get('/system/role/all')
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/role/create', data, {
-    trim: true
-  })
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/role/updateById', data, {
-    trim: true
-  })
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/role/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/role/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
-
-// 閰嶇疆鏉冮檺
-export function createRolePermission (data) {
-  return request.post('/system/role/createRolePermission', data)
-}
-
-// 閰嶇疆鑿滃崟
-export function createRoleMenu (data) {
-  return request.post('/system/role/createRoleMenu', data)
-}
diff --git a/platform/src/api/system/traceLog.js b/platform/src/api/system/traceLog.js
deleted file mode 100644
index 10e0270..0000000
--- a/platform/src/api/system/traceLog.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/traceLog/page', data, {
-    trim: true
-  })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
-  return request.post('/system/traceLog/exportExcel', data, {
-    download: true,
-    trim: true
-  })
-}
diff --git a/platform/src/api/system/user.js b/platform/src/api/system/user.js
deleted file mode 100644
index 6473428..0000000
--- a/platform/src/api/system/user.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import request from '@/utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
-  return request.post('/system/user/page', data)
-}
-
-// 鏂板缓
-export function create (data) {
-  return request.post('/system/user/create', data, {
-    trim: true
-  })
-}
-
-// 淇敼
-export function updateById (data) {
-  return request.post('/system/user/updateById', data, {
-    trim: true
-  })
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
-  return request.get(`/system/user/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
-  return request.get('/system/user/delete/batch', {
-    params: {
-      ids
-    }
-  })
-}
-
-// 閰嶇疆鐢ㄦ埛瑙掕壊
-export function createUserRole (data) {
-  return request.post('/system/user/createUserRole', data)
-}
-
-// 閲嶇疆瀵嗙爜
-export function resetPwd (data) {
-  return request.post('/system/user/resetPwd', data)
-}
-
-// 閲嶇疆瀵嗙爜
-export function updUserStatus (params) {
-  return request.get('/system/user/updUserStatus', {params})
-}
diff --git a/platform/src/assets/icons/ext/index.scss b/platform/src/assets/icons/ext/index.scss
deleted file mode 100644
index bc52e03..0000000
--- a/platform/src/assets/icons/ext/index.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-/**
- * 姝ゆ枃浠剁敤浜庢坊鍔犺嚜瀹氫箟鐨勫浘鏍�
- */
diff --git a/platform/src/assets/icons/system/department.svg b/platform/src/assets/icons/system/department.svg
deleted file mode 100644
index 08d05cd..0000000
--- a/platform/src/assets/icons/system/department.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621750709361" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7590" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M890.96986 479.671711 545.11094 479.671711 545.11094 271.38592 684.78875 271.38592 684.78875 64.500013 343.028339 64.500013 343.028339 271.38592 480.338121 271.38592 480.338121 479.671711 133.397522 479.671711 133.397522 532.849864 133.397522 548.629245 133.397522 755.515153 64.284683 755.515153 64.284683 959.499987 270.160836 959.499987 270.160836 755.515153 202.498081 755.515153 202.498081 548.629245 480.338121 548.629245 480.338121 755.515153 409.786454 755.515153 409.786454 959.499987 615.662607 959.499987 615.662607 755.515153 545.11094 755.515153 545.11094 548.629245 822.225426 548.629245 822.225426 755.515153 753.863725 755.515153 753.863725 959.499987 959.714294 959.499987 959.714294 755.515153 890.96986 755.515153Z" p-id="7591" fill="#f7f7f7"></path></svg>
diff --git a/platform/src/assets/icons/system/dictionary.svg b/platform/src/assets/icons/system/dictionary.svg
deleted file mode 100644
index 7ed0110..0000000
--- a/platform/src/assets/icons/system/dictionary.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621751616853" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12750" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M225.5 596.7h63.8V652h-63.8v-55.3z m0-165.8h63.8v55.3h-63.8v-55.3z m0-165.7h63.8v55.3h-63.8v-55.3z m127.6 331.5h446.3V652H353.1v-55.3z m0-165.8h446.3v55.3H353.1v-55.3z m0-165.7h446.3v55.3H353.1v-55.3zM98 156.3v694.3c0 46.6 45 77.7 96.4 77.7h732.5v-46.6H194.4c-19.3 0-32.2-10.4-32.2-25.9 0-15.5 12.8-25.9 32.2-25.9h732.5V99.4H168.7c-32.1 5.1-64.3 31.1-70.7 56.9z" fill="#f7f7f7" p-id="12751"></path></svg>
diff --git a/platform/src/assets/icons/system/index.scss b/platform/src/assets/icons/system/index.scss
deleted file mode 100644
index 996cf8a..0000000
--- a/platform/src/assets/icons/system/index.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 姝ゆ枃浠朵负绯荤粺鑷甫鐨勫浘鏍囧畾涔夛紝濡傛偍闇�瑕佹墿灞曞浘鏍囪鍦╡xt.scss鏂囦欢涓鐞嗐��
- */
-// 鍥炬爣鏍峰紡
-[class^="eva-icon-"], [class*=" eva-icon-"] {
-  display: inline-block;
-  width: 18px;
-  height: 18px;
-  background-size: 13px;
-  background-repeat: no-repeat;
-  background-position: center;
-}
-// 瀵嗙爜
-.eva-icon-password {
-  background-image: url("assets/icons/system/pwd.svg");
-}
-// 鐩剧墝
-.eva-icon-shield {
-  background-image: url("assets/icons/system/shield.svg");
-}
-// 鏉冮檺
-.eva-icon-permission {
-  background-image: url("assets/icons/system/permission.svg");
-}
-// 瑙掕壊
-.eva-icon-role {
-  background-image: url("assets/icons/system/role.svg");
-}
-// 閮ㄩ棬
-.eva-icon-department {
-  background-image: url("assets/icons/system/department.svg");
-}
-// 宀椾綅
-.eva-icon-position {
-  background-image: url("assets/icons/system/position.svg");
-}
-// 瀛楀吀
-.eva-icon-dictionary {
-  background-image: url("assets/icons/system/dictionary.svg");
-}
-// 鐩戞祴
-.eva-icon-listener {
-  background-image: url("assets/icons/system/listener.svg");
-}
-// 鏃ュ織
-.eva-icon-log {
-  background-image: url("assets/icons/system/log.svg");
-}
-// 鎿嶄綔鏃ュ織
-.eva-icon-log-opera {
-  background-image: url("assets/icons/system/log-opera.svg");
-}
-// 鐧诲綍鏃ュ織
-.eva-icon-log-login {
-  background-image: url("assets/icons/system/log-login.svg");
-}
diff --git a/platform/src/assets/icons/system/listener.svg b/platform/src/assets/icons/system/listener.svg
deleted file mode 100644
index 1d2ca18..0000000
--- a/platform/src/assets/icons/system/listener.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621751666911" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13701" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M64.28 671v80.3c0 34.76 26.84 62.94 60 62.94h297.47v94.15H285.53c-24.17 0-48.38-0.49-72.54 0h-1.06c-12.54 0-24.55 11.58-24 25.18s10.53 25.17 24 25.17h525.88c24.16 0 48.37 0.49 72.53 0h1.06c12.54 0 24.56-11.58 24-25.17s-10.54-25.18-24-25.18H601.59v-94.11H899.1c33.11 0 59.95-28.18 59.95-62.94V671zM899.77 65H124.9A60 60 0 0 0 65 125v499.3h894.72V125a60 60 0 0 0-59.95-60zM757.46 296.75l-6.89 7.53-77 84.15-36.78 40.22c0.08 1.2 0.14 2.41 0.14 3.63a51.09 51.09 0 1 1-100.6-12.67l-55.74-65.31-38.46-45a51 51 0 0 1-21.7 0.18l-6 5.78-71.92 69.71-30.85 29.9a45.45 45.45 0 1 1-36.1-35.1l2.85-2.76 71.92-69.72 32.2-31.21A51.09 51.09 0 1 1 482 259.44a51.66 51.66 0 0 1-1.28 11.34l10.62 12.44L561.13 365l14.72 17.23a51.85 51.85 0 0 1 10-1 50.84 50.84 0 0 1 22.14 5l76.82-84q15.3-16.73 30.59-33.44a45.42 45.42 0 1 1 42 28z" p-id="13702" fill="#f7f7f7"></path></svg>
diff --git a/platform/src/assets/icons/system/log-login.svg b/platform/src/assets/icons/system/log-login.svg
deleted file mode 100644
index a030e67..0000000
--- a/platform/src/assets/icons/system/log-login.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622347607410" class="icon" viewBox="0 0 1038 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3794" width="64.875" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M76.778433 76.778433h776.41112v328.249368h77.209773v-345.071609A59.956192 59.956192 0 0 0 872.599832 0H59.956192A59.956192 59.956192 0 0 0 0 59.956192v898.048863a59.956192 59.956192 0 0 0 59.956192 59.956192H474.473463v-75.915754H76.778433z" p-id="3795" fill="#f7f7f7"></path><path d="M209.631003 256.647009h513.294018v81.091828H209.631003zM209.631003 472.748104h389.068239v81.091829H209.631003zM209.631003 684.535805h278.213984v81.091828H209.631003zM914.871104 774.685762a163.046335 163.046335 0 1 0-227.747262 0 180.731255 180.731255 0 0 0-122.069082 180.731256c0 68.582982 102.227464 68.582982 243.706824 68.582982h86.267902c59.956192 0 101.364785-3.450716 125.088458-27.605729a57.799495 57.799495 0 0 0 17.68492-43.133951 172.535805 172.535805 0 0 0-122.93176-178.574558zM733.277169 590.503791a94.894693 94.894693 0 0 1 67.288964-28.037068 92.306655 92.306655 0 1 1-67.288964 26.74305z m122.500422 364.913227h-46.584668a862.679023 862.679023 0 0 1-172.535804-10.352149c5.607414-99.639427 92.737995-121.206403 166.065712-121.206402 144.498736 0 164.771693 70.73968 166.497051 125.951137a480.943555 480.943555 0 0 1-113.442291 5.607414z" p-id="3796" fill="#f7f7f7"></path></svg>
diff --git a/platform/src/assets/icons/system/log-opera.svg b/platform/src/assets/icons/system/log-opera.svg
deleted file mode 100644
index 051fd63..0000000
--- a/platform/src/assets/icons/system/log-opera.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622347629380" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4602" width="64.0625" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M548.075474 961.502824H37.281249a39.060735 39.060735 0 0 1-37.257932-40.262603V103.368526a39.060735 39.060735 0 0 1 37.257932-40.262604h717.515653a39.060735 39.060735 0 0 1 37.257931 40.262604V513.205775h-60.093438V128.006836H61.919559v773.40255H487.982036l60.093438 63.699045z" fill="#f7f7f7" p-id="4603"></path><path d="M733.764198 513.205775a223.54759 223.54759 0 1 1-225.350393 223.54759 227.153197 227.153197 0 0 1 225.350393-223.54759m0-63.699045A287.246635 287.246635 0 1 0 1022.813636 736.753365a287.246635 287.246635 0 0 0-289.049438-287.246635zM210.951285 0.007812h18.028032a22.835507 22.835507 0 0 1 22.835506 22.835507v145.42612a23.436441 23.436441 0 0 1-22.835506 23.436441h-18.028032a23.436441 23.436441 0 0 1-23.436441-23.436441V25.247056a22.835507 22.835507 0 0 1 22.835507-25.239244z m385.19894 0h18.028031a22.835507 22.835507 0 0 1 23.436441 22.835507v145.42612a23.436441 23.436441 0 0 1-23.436441 23.436441h-18.028031a23.436441 23.436441 0 0 1-22.835507-23.436441V25.247056a22.835507 22.835507 0 0 1 22.835507-25.239244zM157.468125 321.507707h514.399832a31.849522 31.849522 0 0 1 31.849522 31.849522 31.849522 31.849522 0 0 1-31.849522 31.849522H157.468125a31.849522 31.849522 0 0 1-31.849522-31.849522 31.849522 31.849522 0 0 1 31.849522-31.849522z m0 191.698068h257.199916a31.849522 31.849522 0 0 1 31.849522 31.849522 31.849522 31.849522 0 0 1-31.849522 31.849522H157.468125a31.849522 31.849522 0 0 1-31.849522-31.849522 31.849522 31.849522 0 0 1 31.849522-31.849522z m0 191.698068h192.899937a31.248588 31.248588 0 0 1 31.849522 31.849522 31.849522 31.849522 0 0 1-31.849522 31.849522H157.468125a31.849522 31.849522 0 0 1-31.849522-31.849522 31.849522 31.849522 0 0 1 31.849522-31.849522z" fill="#f7f7f7" p-id="4604"></path><path d="M870.777237 829.29726h-152.637333v-212.730771a30.647654 30.647654 0 0 1 30.647654-30.647654 30.647654 30.647654 0 0 1 30.647653 30.647654v152.036398h91.342026a30.046719 30.046719 0 0 1 30.04672 30.647654 30.046719 30.046719 0 0 1-30.04672 30.046719z" fill="#f7f7f7" p-id="4605"></path></svg>
diff --git a/platform/src/assets/icons/system/log.svg b/platform/src/assets/icons/system/log.svg
deleted file mode 100644
index 0fe054b..0000000
--- a/platform/src/assets/icons/system/log.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1622347409604" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2382" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M299.1872 255.5904a42.496 42.496 0 0 0 42.5728-42.5472V42.752a42.5728 42.5728 0 0 0-85.1712 0v170.24c0 23.552 19.0464 42.5984 42.5984 42.5984zM512.1536 255.5904a42.496 42.496 0 0 0 42.5984-42.5472V42.752a42.5728 42.5728 0 1 0-85.1712 0v170.24c0 23.552 19.0976 42.5984 42.5728 42.5984zM384.4096 81.792h42.5984v85.0688h-42.5984zM597.4784 81.792h42.5728v85.0688H597.504z" fill="#f7f7f7" p-id="2383"></path><path d="M1023.3088 896.1024v-691.2c0.1536-70.6048-57.2416-127.6928-127.744-127.6928h-85.1712v85.0688h85.1712c23.4752 0 42.7264 19.072 42.7264 42.5216v691.3024c0 23.4496-19.2512 42.5984-42.752 42.5984H128.768a42.7264 42.7264 0 0 1-42.5728-42.5984H85.504l0.6656-691.2c0-23.4752 19.0976-42.5472 42.5728-42.5472h85.1712V77.2096H128.768A127.6928 127.6928 0 0 0 1.024 204.8768v691.2a127.616 127.616 0 0 0 127.744 127.6928h766.7968a127.3344 127.3344 0 0 0 127.232-121.344c0.0768-0.3584 0.512-0.7936 0.512-1.152v-3.7888c0-0.512 0.1536-0.9472 0.1536-1.4592h-0.1536v0.0768z" fill="#f7f7f7" p-id="2384"></path><path d="M725.248 255.5904c23.4496 0 42.5728-19.0208 42.5728-42.5472V42.752a42.5728 42.5728 0 0 0-85.1712 0v170.24c0 23.552 18.8672 42.5984 42.5728 42.5984zM255.872 426.4448h511.2064c23.3472 0 42.5728-19.072 42.5728-42.5216 0-23.552-19.2256-42.5472-42.5728-42.5472H255.8464a42.496 42.496 0 1 0 0 85.0688zM767.0784 551.3728H255.8464a42.5728 42.5728 0 1 0 0 85.0688h511.232c23.3216 0 42.5728-19.0976 42.5728-42.5472 0-23.4496-19.2512-42.5216-42.5728-42.5216zM767.0784 769.5872H255.8464a42.5216 42.5216 0 1 0 0 85.0688h511.232c23.3216 0 42.5728-19.1488 42.5728-42.6752 0-23.3984-19.2512-42.3936-42.5728-42.3936z" fill="#f7f7f7" p-id="2385"></path></svg>
diff --git a/platform/src/assets/icons/system/permission.svg b/platform/src/assets/icons/system/permission.svg
deleted file mode 100644
index 7499def..0000000
--- a/platform/src/assets/icons/system/permission.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621746809427" class="icon" viewBox="0 0 1025 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4923" width="64.0625" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M928.612599 95.57028a325.17778 325.17778 0 0 0-523.501496 370.143341l-383.852354 383.852354a72.018013 72.018013 0 0 0 0 102.177841L73.352997 1002.741343a72.018013 72.018013 0 0 0 102.177841 0L329.254566 847.920893l19.192618 19.192618a73.114734 73.114734 0 0 0 102.177841 0l51.180314-51.180314a73.114734 73.114734 0 0 0 0-102.177841L482.978295 694.928312l75.490963-75.490963A325.17778 325.17778 0 0 0 928.612599 95.57028zM777.447886 402.469376a109.672101 109.672101 0 1 1-2.741802-155.186023 109.672101 109.672101 0 0 1 2.741802 155.186023z" p-id="4924" fill="#f7f7f7"></path></svg>
diff --git a/platform/src/assets/icons/system/position.svg b/platform/src/assets/icons/system/position.svg
deleted file mode 100644
index 6172da5..0000000
--- a/platform/src/assets/icons/system/position.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621751435396" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11906" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M870 96H154c-49.5 0-90 40.6-90 90.2v651.6c0 49.6 40.5 90.2 90 90.2h716c49.5 0 90-40.6 90-90.2V186.2c0-49.6-40.5-90.2-90-90.2zM177.5 314.4h167.3v59.9H177.5v-59.9z m0 223.5h167.3v59.9H177.5v-59.9z m646.4 229.9v-0.2H362.8v0.2h-59.7c0-20.1 2.3-39.9 6.9-59.1v-1.2h0.3c3.8-15.7 9.1-31 16-46 14.8-32.3 35.9-61.3 62.7-86.1 36.8-34 81.6-57.7 130.5-69.7-39.8-24.8-66.3-69-66.3-119.4 0-77.6 62.7-140.6 140.2-140.6 77.5 0 140.2 63 140.2 140.6 0 50.4-26.5 94.6-66.3 119.4 48.9 11.9 93.7 35.6 130.5 69.7 26.8 24.8 47.9 53.8 62.7 86.1 15.4 33.7 23.2 69.4 23.2 106.3h-59.8z" fill="#f7f7f7" p-id="11907"></path></svg>
diff --git a/platform/src/assets/icons/system/pwd.svg b/platform/src/assets/icons/system/pwd.svg
deleted file mode 100644
index c77cebe..0000000
--- a/platform/src/assets/icons/system/pwd.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621744473001" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2398" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M822.857143 475.428571a36.571429 36.571429 0 0 1 36.571428 36.571429v91.428571a347.428571 347.428571 0 0 1-694.857142 0v-91.428571a36.571429 36.571429 0 0 1 36.571428-36.571429h621.714286m0-73.142857H201.142857a109.714286 109.714286 0 0 0-109.714286 109.714286v91.428571a420.571429 420.571429 0 0 0 420.571429 420.571429 420.571429 420.571429 0 0 0 420.571429-420.571429v-91.428571a109.714286 109.714286 0 0 0-109.714286-109.714286z" p-id="2399" fill="#c1c4cc"></path><path d="M731.428571 475.428571a36.571429 36.571429 0 0 1-36.571428-36.571428V256a182.857143 182.857143 0 0 0-365.714286 0v182.857143a36.571429 36.571429 0 0 1-73.142857 0V256a256 256 0 0 1 512 0v182.857143a36.571429 36.571429 0 0 1-36.571429 36.571428zM512 768a36.571429 36.571429 0 0 1-36.571429-36.571429v-146.285714a36.571429 36.571429 0 0 1 73.142858 0v146.285714a36.571429 36.571429 0 0 1-36.571429 36.571429z" p-id="2400" fill="#c1c4cc"></path></svg>
diff --git a/platform/src/assets/icons/system/role.svg b/platform/src/assets/icons/system/role.svg
deleted file mode 100644
index df41c8d..0000000
--- a/platform/src/assets/icons/system/role.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621750614796" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6622" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M782.215429 604.888761l-18.436207-15.623905-4.609052-3.749737c-3.827857-3.2029-7.811952-6.249562-11.48357-9.296223l-5.234008-3.905976-1.093673-0.859315-6.56204-4.765291c-3.359139-2.421705-6.796398-4.765291-10.233658-7.030757l-2.343585-1.56239a382.082586 382.082586 0 0 0-109.367332-49.293419 264.668943 264.668943 0 1 0-204.438791 0 385.129247 385.129247 0 0 0-108.0393 48.98094l-2.265466 1.562391c-3.515379 2.265466-6.952638 4.609052-10.233658 7.030757l-6.640159 4.84341-0.937434 0.624957-5.312128 4.062215c-3.905976 2.968542-7.811952 6.093323-11.952287 9.608701l-4.062215 3.437259-18.592446 15.623905 0.937434 0.546836A397.159653 397.159653 0 0 0 122.183582 889.321943V914.085832a109.757929 109.757929 0 0 0 109.757929 109.367331h559.257663a109.757929 109.757929 0 0 0 109.367332-109.367331v-24.998248a396.847175 396.847175 0 0 0-119.288511-283.730106z" fill="#f7f7f7" p-id="6623"></path><path d="M232.253989 576.297015c3.984096-3.359139 7.811952-6.327681 11.327331-9.139984l5.858964-4.452813 0.859315-0.624956 6.952637-5.077769 10.936734-7.811952 2.421705-1.562391a403.409215 403.409215 0 0 1 74.526024-38.512924 286.698648 286.698648 0 0 1-138.115316-244.748465c0-6.405801 0-12.733482 0.703076-18.983044a171.081755 171.081755 0 0 0 24.52953 330.914298zM225.926308 581.609143a252.951015 252.951015 0 0 0-102.805292 39.059761l-1.562391 1.015554c-2.265466 1.56239-4.530932 3.046661-6.718278 4.687171l-4.374694 3.202901c-1.406151 1.015554-2.812303 2.031108-4.140334 3.124781-2.577944 1.952988-5.155888 3.984096-7.811953 6.093322l-0.859314 0.781196-2.187347 1.718629A262.950313 262.950313 0 0 0 5.004298 839.872285v17.342534a63.979889 63.979889 0 0 0 63.979889 63.979889h12.186645v-21.482869a421.220466 421.220466 0 0 1 107.648703-281.230281zM678.863301 509.426704a406.221518 406.221518 0 0 1 74.526024 38.512925l2.343586 1.56239 11.014853 7.811952 6.874518 5.077769 0.937434 0.624956 5.858964 4.452813c3.593498 2.812303 7.343235 5.780845 11.327331 9.139984a171.081755 171.081755 0 0 0 24.52953-330.914298c0.390598 6.249562 0.703076 12.577243 0.703076 18.983044A286.698648 286.698648 0 0 1 678.863301 509.426704zM928.220817 641.136219l-2.109227-1.718629-0.937434-0.781196c-2.499825-2.109227-4.999649-4.140335-7.811953-6.093322l-4.140334-3.124781-4.374694-3.202901c-2.187347-1.64051-4.452813-3.124781-6.796398-4.687171l-1.484271-1.015554a253.341612 253.341612 0 0 0-102.805292-39.059761l37.106773 36.716175a421.142347 421.142347 0 0 1 107.570583 281.230282v21.482869h12.186646a64.058009 64.058009 0 0 0 64.058008-63.979889v-17.030056a262.715955 262.715955 0 0 0-90.462407-198.736066z" fill="#f7f7f7" p-id="6624"></path></svg>
diff --git a/platform/src/assets/icons/system/shield.svg b/platform/src/assets/icons/system/shield.svg
deleted file mode 100644
index 9813a37..0000000
--- a/platform/src/assets/icons/system/shield.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1621745695957" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3315" width="64" height="64" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M517.094527 1024c-153.345274 0-438.129353-228.234826-438.129353-444.242786V167.60995c0-10.189055 8.151244-17.830846 18.849751-18.340298l24.963184-0.509453c1.018905 0 98.324378-2.037811 198.686568-41.775124C423.864677 66.228856 490.093532 19.359204 491.112438 18.849751l14.774129-10.189054c3.056716-2.037811 7.132338-3.566169 11.20796-3.56617 4.075622 0 8.151244 1.018905 11.207961 3.56617l14.774129 10.698507c0.509453 0.509453 67.247761 47.379104 170.157214 88.135323 100.362189 39.737313 197.667662 41.775124 198.686567 41.775125l24.453731 0.509452c10.189055 0 18.849751 8.151244 18.849752 18.340299v412.147264c0 215.498507-284.78408 443.733333-438.129354 443.733333z m370.881592-808.501493c-37.699502-3.056716-117.174129-12.736318-199.196019-45.341293-84.569154-33.114428-146.212935-70.304478-171.685573-87.116418-25.472637 16.302488-87.116418 54.00199-171.685572 87.116418-82.021891 32.604975-160.987065 42.284577-199.19602 45.341293v364.258707c0 169.138308 248.103483 376.485572 370.881592 376.485572 47.379104 0 140.099502-38.718408 230.78209-123.287562 87.625871-81.512438 140.099502-176.270647 140.099502-253.19801V215.498507z m-406.03383 433.544279c-6.113433 6.622886-14.774129 10.189055-23.944279 10.189055-9.170149 0-17.321393-3.566169-23.944279-10.189055l-101.381094-101.890547a33.827662 33.827662 0 0 1 0-47.888557c13.245771-13.245771 34.133333-13.245771 47.379104-0.509453l0.509453 0.509453 77.436816 77.946268 195.120398-196.648756c12.736318-13.245771 34.133333-13.245771 47.379104-0.509453l0.509453 0.509453c13.245771 13.245771 13.245771 34.642786 0 47.888557l-219.064676 220.593035z" p-id="3316" fill="#c1c4cc"></path></svg>
diff --git a/platform/src/assets/images/404-tip.png b/platform/src/assets/images/404-tip.png
deleted file mode 100644
index 5182634..0000000
--- a/platform/src/assets/images/404-tip.png
+++ /dev/null
Binary files differ
diff --git a/platform/src/assets/images/404.png b/platform/src/assets/images/404.png
deleted file mode 100644
index a386e02..0000000
--- a/platform/src/assets/images/404.png
+++ /dev/null
Binary files differ
diff --git a/platform/src/assets/images/login.jpg b/platform/src/assets/images/login.jpg
deleted file mode 100644
index ab83114..0000000
--- a/platform/src/assets/images/login.jpg
+++ /dev/null
Binary files differ
diff --git a/platform/src/assets/images/man.png b/platform/src/assets/images/man.png
deleted file mode 100644
index a6e3a8f..0000000
--- a/platform/src/assets/images/man.png
+++ /dev/null
Binary files differ
diff --git a/platform/src/assets/images/not-allow.png b/platform/src/assets/images/not-allow.png
deleted file mode 100644
index 57cb287..0000000
--- a/platform/src/assets/images/not-allow.png
+++ /dev/null
Binary files differ
diff --git a/platform/src/assets/images/woman.png b/platform/src/assets/images/woman.png
deleted file mode 100644
index 2aaafa6..0000000
--- a/platform/src/assets/images/woman.png
+++ /dev/null
Binary files differ
diff --git a/platform/src/assets/logo.png b/platform/src/assets/logo.png
deleted file mode 100644
index 3c0b233..0000000
--- a/platform/src/assets/logo.png
+++ /dev/null
Binary files differ
diff --git a/platform/src/assets/style/element-variables.scss b/platform/src/assets/style/element-variables.scss
deleted file mode 100644
index efaf750..0000000
--- a/platform/src/assets/style/element-variables.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-@import "variables";
-/* theme color */
-$--color-primary: $primary-color;
-
-/* icon font path, required */
-$--font-path: '~element-ui/lib/theme-chalk/fonts';
-
-@import "~element-ui/packages/theme-chalk/src/index";
-
diff --git a/platform/src/assets/style/style.scss b/platform/src/assets/style/style.scss
deleted file mode 100644
index 5a90314..0000000
--- a/platform/src/assets/style/style.scss
+++ /dev/null
@@ -1,96 +0,0 @@
-@import "variables.scss";
-// 鏍峰紡閲嶇疆
-html {
-  height: 100%;
-  padding: 0;
-  margin: 0;
-  color: $font-color;
-  // overflow: hidden;
-  font-family: 'Avenir', Helvetica, Arial, sans-serif;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  scrollbar-width: none; /* firefox */
-  -ms-overflow-style: none; /* IE 10+ */
-  &::-webkit-scrollbar {
-    display: none; /* Chrome Safari */
-  }
-  body {
-    height: 100%;
-    padding: 0;
-    margin: 0;
-    overflow: scroll;
-    overflow: hidden;
-    scrollbar-width: none; /* firefox */
-    -ms-overflow-style: none; /* IE 10+ */
-    &::-webkit-scrollbar {
-      display: none; /* Chrome Safari */
-    }
-  }
-  h1,h2,h3,h4,h5,h6,ul {
-    margin: 0;
-    padding: 0;
-  }
-  ul {
-    list-style: none;
-  }
-  #app {
-    height: 100%;
-    min-width: $page-min-width;
-    // overflow: hidden;
-  }
-}
-
-.bg {
-  z-index: 9990 !important;
-}
-.windows {
-  z-index: 9991 !important;
-}
-
-// 绌挎妗嗙殑鎸夐挳
-.el-transfer__buttons {
-  padding: 0 16px !important;
-}
-
-.table-header {
-  background-color: #F5F6F8!important;
-  th {
-    background-color: #F5F6F8!important;
-    color: #3F4F69 !important;
-    font-size: 14px;
-  }
-}
-
-.doumee-element-table {
-  border-color: #DFE2E8;
-  tr, th, td {
-    border-color: #DFE2E8;
-  }
-}
-
-::v-deep .el-table__fixed {
-  height: 100% !important;
-}
-::v-deep .el-table__fixed-right {
-  height: 100% !important;
-}
-::v-deep .el-table__cell {
-  height: 100% !important;
-}
-.apply-status0, .apply-status2 , .apply-status3, .apply-status10,
-.change-status0,.change-status1,.change-status2,
-.settle-status0,.settle-status2,.settle-status3,
-.tax-status0,
-.du-status0 {
-  color: #216EEE  !important;
-}
-  .apply-status1 , .apply-status4, .apply-status6, .apply-status7, .apply-status8,
-.change-status3,.change-status4,.change-status5,.change-status8,
-.settle-status1,
-.tax-status2,
-.du-status2 {
-  color: #F95601 !important;
-}
-  .apply-status5,.change-status7,.settle-status7,.tax-status1,.du-status1,.settle-status4  {
-  color: #00BA92  !important;
-}
diff --git a/platform/src/assets/style/variables.scss b/platform/src/assets/style/variables.scss
deleted file mode 100644
index b7a84b0..0000000
--- a/platform/src/assets/style/variables.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-// 涓昏壊璋�
-$primary-color: #216EEE;
-$primary-title-start-color: #3582ff;
-$primary-title-color: #216EcE;
-$primary-color-sel: #0046c6;
-$primary-color-hover: #1562e2;
-$icon-background-color: #0d5ada;
-//鑿滃崟鎮诞鑹诧細
-$menu-hover-color: rgba(33, 110, 238, 0.10);
-// 澶撮儴楂樺害
-$header-height: 60px;
-// 鑿滃崟瀹藉害
-$menu-width: 250px;
-// 椤甸潰鏈�灏忓搴�
-$page-min-width: 1000px;
-
-// 瀛椾綋
-$font-color: #282828; // 棰滆壊
-$font-size: 12px; // 澶у皬
diff --git a/platform/src/components/base/BaseOpera.vue b/platform/src/components/base/BaseOpera.vue
deleted file mode 100644
index 5d64137..0000000
--- a/platform/src/components/base/BaseOpera.vue
+++ /dev/null
@@ -1,122 +0,0 @@
-<script>
-export default {
-  name: 'BaseOpera',
-  data () {
-    return {
-      title: '',
-      visible: false,
-      isWorking: false,
-      // 鎺ュ彛
-      api: null,
-      // 閰嶇疆鏁版嵁
-      configData: {
-        'field.id': 'id'
-      }
-    }
-  },
-  // watch: {
-  //   visible() {
-  //     console.log(this.visible);
-  //   }
-  // },
-  watch: {
-    $route (to, from) {
-      this.close()
-    }
-  },
-  methods: {
-    // 閰嶇疆
-    config (extParams = {}) {
-      if (extParams == null) {
-        throw new Error('Parameter can not be null of method \'config\' .')
-      }
-      if (extParams.api == null) {
-        throw new Error('Missing config option \'api\'.')
-      }
-      this.api = require('@/api' + extParams.api)
-      extParams['field.id'] && (this.configData['field.id'] = extParams['field.id'])
-    },
-    /**
-     * 鎵撳紑绐楀彛
-     * @title 绐楀彛鏍囬
-     * @target 缂栬緫鐨勫璞�
-     */
-    open (title, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form[this.configData['field.id']] = null
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-      })
-    },
-    close () {
-      this.visible = false
-    },
-    // 纭鏂板缓/淇敼
-    confirm () {
-      if (this.form.id == null || this.form.id === '') {
-        this.__confirmCreate()
-        return
-      }
-      this.__confirmEdit()
-    },
-    // 纭鏂板缓
-    __confirmCreate () {
-      this.$refs.form.validate((valid) => {
-        // debugger
-        if (!valid) {
-          return
-        }
-        // console.log(this.form);
-        // debugger
-        // 璋冪敤鏂板缓鎺ュ彛
-        this.isWorking = true
-        this.api.create(this.form)
-          .then(() => {
-            this.visible = false
-            this.$tip.apiSuccess('鏂板缓鎴愬姛')
-            this.$emit('success')
-          })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
-          .finally(() => {
-            this.isWorking = false
-          })
-      })
-    },
-    // 纭淇敼
-    __confirmEdit () {
-      this.$refs.form.validate((valid) => {
-        if (!valid) {
-          return
-        }
-        // 璋冪敤鏂板缓鎺ュ彛
-        this.isWorking = true
-        this.api.updateById(this.form)
-          .then(() => {
-            this.visible = false
-            this.$tip.apiSuccess('淇敼鎴愬姛')
-            this.$emit('success')
-          })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
-          .finally(() => {
-            this.isWorking = false
-          })
-      })
-    }
-  }
-}
-</script>
diff --git a/platform/src/components/base/BasePage.vue b/platform/src/components/base/BasePage.vue
deleted file mode 100644
index 38cf164..0000000
--- a/platform/src/components/base/BasePage.vue
+++ /dev/null
@@ -1,57 +0,0 @@
-<script>
-import { mapState } from 'vuex'
-export default {
-  name: 'BasePage',
-  data () {
-    return {
-      // 瓒呯骇绠$悊鍛樿鑹瞔ode
-      adminCode: 'admin'
-    }
-  },
-  computed: {
-    ...mapState(['userInfo']),
-    // 鏄惁涓鸿秴绾х鐞嗗憳
-    isAdmin () {
-      return this.userInfo.roles.findIndex(code => code === this.adminCode) > -1
-    }
-  },
-  methods: {
-    // 鏄惁鍖呭惈鎸囧畾瑙掕壊
-    containRoles (roles) {
-      if (roles == null) {
-        return true
-      }
-      if (this.userInfo == null) {
-        return false
-      }
-      if (this.userInfo.roles == null || this.userInfo.roles.length === 0) {
-        return false
-      }
-      for (const code of roles) {
-        if (this.userInfo.roles.findIndex(r => r === code) > -1) {
-          return true
-        }
-      }
-      return false
-    },
-    // 鏄惁鍖呭惈鎸囧畾鏉冮檺
-    containPermissions (permissions) {
-      if (permissions == null) {
-        return true
-      }
-      if (this.userInfo == null) {
-        return false
-      }
-      if (this.userInfo.permissions == null || this.userInfo.permissions.length === 0) {
-        return false
-      }
-      for (const code of permissions) {
-        if (this.userInfo.permissions.findIndex(p => p === code) > -1) {
-          return true
-        }
-      }
-      return false
-    }
-  }
-}
-</script>
diff --git a/platform/src/components/base/BaseTable.vue b/platform/src/components/base/BaseTable.vue
deleted file mode 100644
index ccdafc0..0000000
--- a/platform/src/components/base/BaseTable.vue
+++ /dev/null
@@ -1,217 +0,0 @@
-<script>
-import BasePage from './BasePage'
-export default {
-  name: 'BaseTable',
-  extends: BasePage,
-  data () {
-    return {
-      // 鎺ュ彛
-      api: null,
-      // 妯″潡鍚嶇О
-      module: '鏁版嵁',
-      // 閰嶇疆鏁版嵁
-      configData: {
-        // id瀛楁
-        'field.id': 'id',
-        // 涓诲瓧娈�
-        'field.main': 'name'
-      },
-      // 鏄惁姝e湪鎵ц
-      isWorking: {
-        // 鎼滅储涓�
-        search: false,
-        // 鍒犻櫎涓�
-        delete: false,
-        // 瀵煎嚭涓�
-        export: false
-      },
-      // 琛ㄦ牸鏁版嵁
-      tableData: {
-        // 宸查�変腑鐨勬暟鎹�
-        selectedRows: [],
-        // 鎺掑簭鐨勫瓧娈�
-        sorts: [],
-        // 褰撳墠椤垫暟鎹�
-        list: [],
-        // 鍒嗛〉
-        pagination: {
-          pageIndex: 1,
-          pageSize: 10,
-          total: 0
-        }
-      }
-    }
-  },
-  methods: {
-    // 閰嶇疆
-    config (extParams) {
-      if (extParams == null) {
-        throw new Error('Parameter can not be null of method \'config\' .')
-      }
-      if (extParams.api == null) {
-        throw new Error('Missing config option \'api\'.')
-      }
-      this.api = require('@/api' + extParams.api)
-      extParams.module && (this.module = extParams.module)
-      extParams['field.id'] && (this.configData['field.id'] = extParams['field.id'])
-      extParams['field.main'] && (this.configData['field.main'] = extParams['field.main'])
-      this.tableData.sorts = extParams.sorts
-    },
-    // 鎼滅储
-    search () {
-      this.handlePageChange(1)
-    },
-    // 瀵煎嚭Excel
-    exportExcel () {
-      this.__checkApi()
-      this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
-        .then(() => {
-          this.isWorking.export = true
-          this.api.exportExcel({
-            page: this.tableData.pagination.pageIndex,
-            capacity: 1000000,
-            model: this.searchForm,
-            sorts: this.tableData.sorts
-          })
-            .then(response => {
-              this.download(response)
-            })
-            .catch(e => {
-              this.$tip.apiFailed(e)
-            })
-            .finally(() => {
-              this.isWorking.export = false
-            })
-        })
-        .catch(() => {})
-    },
-    // 鎼滅储妗嗛噸缃�
-    reset () {
-      this.$refs.searchForm.resetFields()
-      this.search()
-    },
-    // 姣忛〉鏄剧ず鏁伴噺鍙樻洿澶勭悊
-    handleSizeChange (pageSize) {
-      this.tableData.pagination.pageSize = pageSize
-      this.search()
-    },
-    // 琛岄�変腑澶勭悊
-    handleSelectionChange (selectedRows) {
-      this.tableData.selectedRows = selectedRows
-    },
-    // 鎺掑簭
-    handleSortChange (sortData) {
-      this.tableData.sorts = []
-      if (sortData.order != null) {
-        this.tableData.sorts.push({
-          property: sortData.column.sortBy,
-          direction: sortData.order === 'descending' ? 'DESC' : 'ASC'
-        })
-      }
-      this.handlePageChange()
-    },
-    // 椤电爜鍙樻洿澶勭悊
-    handlePageChange (pageIndex) {
-      this.__checkApi()
-      this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex
-      this.isWorking.search = true
-      this.api.fetchList({
-        page: this.tableData.pagination.pageIndex,
-        capacity: this.tableData.pagination.pageSize,
-        model: this.searchForm,
-        sorts: this.tableData.sorts
-      })
-        .then(data => {
-          this.tableData.list = data.records
-          this.tableData.pagination.total = data.total
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.search = false
-        })
-    },
-    // 鍒犻櫎
-    deleteById (row, childConfirm = true) {
-      this.__checkApi()
-      // let message = `纭鍒犻櫎${this.module}銆�${row[this.configData['field.main']]}銆戝悧?`
-      let message = `纭鍒犻櫎璇ヨ褰曞悧?`
-      if (childConfirm && row.children != null && row.children.length > 0) {
-        // message = `纭鍒犻櫎${this.module}銆�${row[this.configData['field.main']]}銆戝強鍏跺瓙${this.module}鍚�?`
-        message = `纭鍒犻櫎璇ヨ褰曞強鍏跺瓙鏁版嵁鍚�?`
-      }
-      this.$dialog.deleteConfirm(message)
-        .then(() => {
-          this.isWorking.delete = true
-          this.api.deleteById(row[this.configData['field.id']])
-            .then(() => {
-              this.$tip.apiSuccess('鍒犻櫎鎴愬姛')
-              this.__afterDelete()
-            })
-            .catch(e => {
-              this.$tip.apiFailed(e)
-            })
-            .finally(() => {
-              this.isWorking.delete = false
-            })
-        })
-        .catch(() => {})
-    },
-    /**
-     * 鎵归噺鍒犻櫎
-     * @treeMode 鏄惁娣诲姞瀛愯妭鐐瑰垹闄ょ‘璁�
-     */
-    deleteByIdInBatch (childConfirm = true) {
-      this.__checkApi()
-      if (this.tableData.selectedRows.length === 0) {
-        this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
-        return
-      }
-      let message = `纭鍒犻櫎宸查�変腑鐨� ${this.tableData.selectedRows.length} 鏉�${this.module}璁板綍鍚�?`
-      if (childConfirm) {
-        const containChildrenRows = []
-        for (const row of this.tableData.selectedRows) {
-          if (row.children != null && row.children.length > 0) {
-            containChildrenRows.push(row[this.configData['field.main']])
-          }
-        }
-        if (containChildrenRows.length > 0) {
-          message = '鏈灏嗗垹闄よ鏁版嵁鍙婂叾瀛愭暟鎹紝纭鍒犻櫎鍚楋紵'
-        }
-      }
-      this.$dialog.deleteConfirm(message)
-        .then(() => {
-          this.isWorking.delete = true
-          this.api.deleteByIdInBatch(this.tableData.selectedRows.map(row => row.id).join(','))
-            .then(() => {
-              this.$tip.apiSuccess('鍒犻櫎鎴愬姛')
-              this.__afterDelete(this.tableData.selectedRows.length)
-            })
-            .catch(e => {
-              this.$tip.apiFailed(e)
-            })
-            .finally(() => {
-              this.isWorking.delete = false
-            })
-        })
-        .catch(() => {})
-    },
-    // 鍒犻櫎澶勭悊
-    __afterDelete (deleteCount = 1) {
-      // 鍒犻櫎褰撳墠椤垫渶鍚庝竴鏉¤褰曟椂鏌ヨ涓婁竴椤垫暟鎹�
-      if (this.tableData.list.length - deleteCount === 0) {
-        this.handlePageChange(this.tableData.pagination.pageIndex - 1 === 0 ? 1 : this.tableData.pagination.pageIndex - 1)
-      } else {
-        this.handlePageChange(this.tableData.pagination.pageIndex)
-      }
-    },
-    // 妫�鏌ユ帴鍙f槸鍚﹂厤缃�
-    __checkApi () {
-      if (this.api == null) {
-        throw new Error('The page is not initialized, you can use method \'this.config\' to initialize this page.')
-      }
-    }
-  }
-}
-</script>
diff --git a/platform/src/components/business/OperaDispatchUnitWindow.vue b/platform/src/components/business/OperaDispatchUnitWindow.vue
deleted file mode 100644
index 1f5459f..0000000
--- a/platform/src/components/business/OperaDispatchUnitWindow.vue
+++ /dev/null
@@ -1,245 +0,0 @@
-<template>
-    <GlobalWindow
-        :title="title"
-        width="50%"
-        :visible.sync="visible"
-        :confirm-working="isWorking"
-        @confirm="confirm"
-    >
-        <div class="box">
-            <div class="box_label">娲鹃仯鍗曚綅璇︽儏</div>
-            <div class="box_list">
-                <div class="box_list_item">
-                    <div class="box_list_item_label">娲鹃仯鍗曚綅锛�</div>
-                    <div class="box_list_item_val">鑺滄箹鏍煎姏绮惧瘑鍒堕�犳湁闄愬叕鍙�</div>
-                </div>
-                <div class="box_list_item">
-                    <div class="box_list_item_label">娲鹃仯鍗曚綅淇$敤浠g爜锛�</div>
-                    <div class="box_list_item_val">913401000900000001</div>
-                </div>
-                <div class="box_list_item">
-                    <div class="box_list_item_label">娲鹃仯鍗曚綅鐘舵�侊細</div>
-                    <div class="box_list_item_val">宸查�氳繃</div>
-                </div>
-                <div class="box_list_item">
-                    <div class="box_list_item_label">娲鹃仯鍗曚綅璇﹁堪锛�</div>
-                    <div class="box_list_item_val">鏃�</div>
-                </div>
-            </div>
-            <div class="box_x"></div>
-            <div class="box_fa">淇濋櫓鏂规锛氬钩瀹変繚闄╅泧涓昏矗浠婚櫓A鐗�</div>
-            <el-table
-                :data="tableData"
-                border
-                style="width: 100%">
-                <el-table-column
-                    label="搴忓彿"
-                    align="center"
-                    width="80">
-                    <template slot-scope="scope">
-                        <span>{{scope.$index + 1}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                    align="center"
-                    label="鎵�灞炲伐绉�">
-                    <template slot-scope="{row}">
-                        <el-select v-model="row.info" placeholder="璇烽�夋嫨">
-                            <el-option
-                                v-for="item in options"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value">
-                            </el-option>
-                        </el-select>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                    label="瀹℃牳閫氳繃鏃ユ湡"
-                    width="150"
-                    align="center"
-                    prop="time">
-                </el-table-column>
-            </el-table>
-            <div class="box_videos">
-                <div class="box_videos_item" v-for="(item,index) in 1" :key="index">
-                    <video src="https://baidu.com"></video>
-                    <div class="box_videos_item_info">
-                        1-3绫� 钄彍/鍥壓宸�/瀹剁瀹剁暅楗插吇浜哄憳
-                    </div>
-                </div>
-            </div>
-            <div class="box_fa">淇濋櫓鏂规锛氬钩瀹変繚闄╅泧涓昏矗浠婚櫓A鐗�</div>
-            <el-table
-                    :data="tableData"
-                    border
-                    style="width: 100%">
-                <el-table-column
-                        label="搴忓彿"
-                        align="center"
-                        width="80">
-                    <template slot-scope="scope">
-                        <span>{{scope.$index + 1}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                        align="center"
-                        label="鎵�灞炲伐绉�">
-                    <template slot-scope="{row}">
-                        <el-select v-model="row.info" placeholder="璇烽�夋嫨">
-                            <el-option
-                                    v-for="item in options"
-                                    :key="item.value"
-                                    :label="item.label"
-                                    :value="item.value">
-                            </el-option>
-                        </el-select>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                        label="瀹℃牳閫氳繃鏃ユ湡"
-                        width="150"
-                        align="center"
-                        prop="time">
-                </el-table-column>
-            </el-table>
-            <div class="box_videos">
-                <div class="box_videos_item" v-for="(item,index) in 1" :key="index">
-                    <video src="https://baidu.com"></video>
-                    <div class="box_videos_item_info">
-                        1-3绫� 钄彍/鍥壓宸�/瀹剁瀹剁暅楗插吇浜哄憳
-                    </div>
-                </div>
-            </div>
-            <div class="box_label">瀹℃牳娴佺▼</div>
-            <el-timeline :reverse="reverse" style="margin-top: 20px;">
-                <el-timeline-item
-                    v-for="(activity, index) in activities"
-                    :key="index"
-                    :timestamp="activity.timestamp">
-                    {{activity.content}}
-                </el-timeline-item>
-            </el-timeline>
-        </div>
-    </GlobalWindow>
-</template>
-
-<script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    export default {
-        name: 'OperaDispatchUnitWindow',
-        extends: BaseOpera,
-        components: { GlobalWindow },
-        data () {
-            return {
-                reverse: false,
-                activities: [{
-                    content: '鎻愪氦娲鹃仯鍗曚綅',
-                    timestamp: '鎿嶄綔鍛�-寮犱紵锛堝畨寰借眴绫崇鎶�鏈夐檺鍏徃锛塡n' +
-                        '\n' +
-                        '2023-09-11 00:00:00'
-                }, {
-                    content: '娲鹃仯鍗曚綅閫氳繃\n' +
-                        '\n' +
-                        '\n' +
-                        '鎻愪氦鎰忚锛�-',
-                    timestamp: '鎿嶄綔鍛�-鍙舵樉楠忥紙骞冲彴绔級\n' +
-                        '\n' +
-                        '2023-09-11 00:00:00'
-                }],
-                // 琛ㄥ崟鏁版嵁
-                form: {
-                    id: null,
-                    worktypeStatus: ''
-                },
-                // 楠岃瘉瑙勫垯
-                rules: {
-                },
-                tableData: []
-            }
-        },
-        created () {
-            this.config({
-                api: '/business/dispatchUnit',
-                'field.id': 'id'
-            })
-        }
-    }
-</script>
-
-<style lang="scss" scoped>
-    .box {
-        width: 100%;
-        .box_label {
-            font-size: 20px;
-            font-weight: 600;
-            margin-bottom: 10px;
-        }
-        .box_list {
-            width: 100%;
-            display: flex;
-            align-items: center;
-            flex-wrap: wrap;
-            justify-content: space-between;
-            .box_list_item {
-                width: 33.3%;
-                display: flex;
-                align-items: center;
-                margin-top: 10px;
-                .box_list_item_label {
-                    flex-shrink: 0;
-                    font-size: 14px;
-                    color: black;
-                }
-                .box_list_item_val {
-                    flex: 1;
-                    font-size: 14px;
-                    color: black;
-                }
-            }
-        }
-        .box_x {
-            width: 100%;
-            height: 1px;
-            background: #ececec;
-            margin: 20px 0;
-        }
-        .box_fa {
-            font-size: 14px;
-            color: black;
-            margin-bottom: 20px;
-        }
-        .box_videos {
-            width: 100%;
-            display: flex;
-            flex-wrap: wrap;
-            align-items: center;
-            margin-top: 20px;
-            .box_videos_item {
-                width: 300px;
-                padding: 5px;
-                box-sizing: border-box;
-                display: flex;
-                align-items: start;
-                border: 1px solid #ececec;
-                margin-right: 20px;
-                margin-bottom: 20px;
-                &:last-child {
-                    margin-right: 0 !important;
-                }
-                video {
-                    flex-shrink: 0;
-                    width: 100px;
-                    height: 100px;
-                }
-                .box_videos_item_info {
-                    flex: 1;
-                    font-size: 14px;
-                    color: black;
-                    margin-left: 5px;
-                }
-            }
-        }
-    }
-</style>
diff --git a/platform/src/components/common/ColumnDetail.vue b/platform/src/components/common/ColumnDetail.vue
deleted file mode 100644
index 23dbab9..0000000
--- a/platform/src/components/common/ColumnDetail.vue
+++ /dev/null
@@ -1,116 +0,0 @@
-<template>
-  <span v-if="content.length <= limit">{{content}}</span>
-  <el-popover
-    v-else
-    v-model="visible"
-    popper-class="eva-column-detail-popover"
-    trigger="click"
-  >
-    <div class="eva-column-detail">
-      <pre class="eva-column-detail__main">{{formattedContent}}</pre>
-      <div class="eva-column-detail__action">
-        <el-button size="mini" @click="cancel">鍏抽棴</el-button>
-        <el-button
-          size="mini"
-          type="primary"
-          v-clipboard:copy="formattedContent"
-          v-clipboard:success="copySuccess"
-          v-clipboard:error="copyFailed"
-          @click="confirm"
-        >{{ confirmButtonText }}</el-button>
-      </div>
-    </div>
-    <el-button slot="reference" :type="buttonType">鏌ョ湅</el-button>
-  </el-popover>
-</template>
-
-<script>
-export default {
-  name: 'ColumnDetail',
-  props: {
-    // 鎸夐挳绫诲瀷
-    buttonType: {
-      type: String
-    },
-    // 鍐呭
-    content: {
-      type: String,
-      default: ''
-    },
-    // 闄愬埗锛屽ぇ浜庨檺鍒舵椂灞曠ず鏌ョ湅鎸夐挳
-    limit: {
-      type: Number,
-      default: 12
-    },
-    // 鑷姩璇嗗埆鏁版嵁绫诲瀷骞舵牸寮忓寲
-    analyse: {
-      type: Boolean,
-      default: true
-    },
-    // 鏄惁鍏佽澶嶅埗
-    allowCopy: {
-      type: Boolean,
-      default: true
-    }
-  },
-  data () {
-    return {
-      visible: false
-    }
-  },
-  computed: {
-    // 纭鎸夐挳鏂囨
-    confirmButtonText () {
-      return this.allowCopy ? '澶嶅埗' : '纭畾'
-    },
-    // 鏍煎紡鍖栧悗鐨勫唴瀹�
-    formattedContent () {
-      let content = this.content
-      if (this.analyse) {
-        try {
-          content = JSON.stringify(JSON.parse(this.content), null, 2)
-        } catch (e) {
-        }
-      }
-      return content
-    }
-  },
-  methods: {
-    // 鐐瑰嚮纭
-    confirm () {
-      this.visible = false
-      this.$emit('confirm')
-    },
-    // 鐐瑰嚮鍙栨秷
-    cancel () {
-      this.visible = false
-      this.$emit('cancel')
-    },
-    // 澶嶅埗鎴愬姛
-    copySuccess () {
-      this.$tip.success('澶嶅埗鎴愬姛')
-    },
-    // 澶嶅埗澶辫触
-    copyFailed () {
-      this.$tip.error('澶嶅埗澶辫触')
-    }
-  }
-}
-</script>
-
-<style lang="scss">
-.eva-column-detail-popover {
-  max-width: 80%;
-}
-</style>
-<style scoped lang="scss">
-.eva-column-detail {
-  .eva-column-detail__main {
-    max-height: 500px;
-    overflow: auto;
-  }
-  .eva-column-detail__action {
-    text-align: right;
-  }
-}
-</style>
diff --git a/platform/src/components/common/DepartmentSelect.vue b/platform/src/components/common/DepartmentSelect.vue
deleted file mode 100644
index 77d0b67..0000000
--- a/platform/src/components/common/DepartmentSelect.vue
+++ /dev/null
@@ -1,90 +0,0 @@
-<template>
-  <TreeSelect
-    :placeholder="placeholder"
-    :value="value"
-    :data="data"
-    :clearable="clearable"
-    :append-to-body="appendToBody"
-    :inline="inline"
-    :multiple="multiple"
-    :flat="multiple"
-    @input="$emit('input', $event)"
-  />
-</template>
-
-<script>
-import TreeSelect from './TreeSelect'
-import { fetchTree } from '@/api/system/department'
-export default {
-  name: 'DepartmentSelect',
-  components: { TreeSelect },
-  props: {
-    value: {},
-    inline: {
-      default: true
-    },
-    multiple: {
-      default: false
-    },
-    placeholder: {
-      default: '璇烽�夋嫨閮ㄩ棬'
-    },
-    // 鏄惁鍙竻绌�
-    clearable: {
-      default: false
-    },
-    appendToBody: {
-      default: false
-    },
-    // 闇�琚帓闄ょ殑閮ㄩ棬ID
-    excludeId: {}
-  },
-  data () {
-    return {
-      data: []
-    }
-  },
-  watch: {
-    value () {
-      this.fetchData()
-    }
-  },
-  methods: {
-    // 鑾峰彇鎵�鏈夐儴闂�
-    fetchData () {
-      fetchTree()
-        .then(records => {
-          // debugger
-          this.data = []
-          this.__fillData(this.data, records)
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-    },
-    // 濉厖閮ㄩ棬鏍�
-    __fillData (list, pool) {
-      for (const dept of pool) {
-        if (dept.id === this.excludeId) {
-          continue
-        }
-        const deptNode = {
-          id: dept.id,
-          label: dept.name
-        }
-        list.push(deptNode)
-        if (dept.children != null && dept.children.length > 0) {
-          deptNode.children = []
-          this.__fillData(deptNode.children, dept.children)
-          if (deptNode.children.length === 0) {
-            deptNode.children = undefined
-          }
-        }
-      }
-    }
-  },
-  created () {
-    this.fetchData()
-  }
-}
-</script>
diff --git a/platform/src/components/common/GlobalAlertWindow.vue b/platform/src/components/common/GlobalAlertWindow.vue
deleted file mode 100644
index 53b0597..0000000
--- a/platform/src/components/common/GlobalAlertWindow.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<template>
-  <el-dialog
-    class="global-window"
-    title="title"
-    :visible="visible"
-    :with-header="true"
-    :width="width"
-    :close-on-press-escape="false"
-    :wrapper-closable="false"
-    :append-to-body="true"
-    @close="close"
-  >
-    <div slot="title" class="window__header">
-      {{title}}
-    </div>
-    <div class="window__body">
-      <slot></slot>
-    </div>
-    <div v-if="withFooter" class="window__footer">
-      <slot name="footer">
-        <el-button @click="confirm" :loading="confirmWorking" type="primary">纭畾</el-button>
-        <el-button @click="close">鍙栨秷</el-button>
-      </slot>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-export default {
-  name: 'GlobalAlertWindow',
-  props: {
-    width: {
-      type: String,
-      default: '50%'
-    },
-    // 鏄惁鍖呭惈搴曢儴鎿嶄綔
-    withFooter: {
-      type: Boolean,
-      default: true
-    },
-    // 纭鎸夐挳loading鐘舵��
-    confirmWorking: {
-      type: Boolean,
-      default: false
-    },
-    // 鏍囬
-    title: {
-      type: String,
-      default: ''
-    },
-    // 鏄惁灞曠ず
-    visible: {
-      type: Boolean,
-      required: true
-    }
-  },
-  methods: {
-    confirm () {
-      // console.log(this.title);
-      // debugger
-      this.$emit('confirm')
-    },
-    close () {
-      // console.log(this.title);
-      // debugger
-      this.$emit('update:visible', false)
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-// 杈撳叆妗嗛珮搴�
-$input-height: 32px;
-::v-deep .el-dialog__header {
-  background-color: #f7f7f7;
-  font-weight: 500;
-  color: #222;
-}
-::v-deep .el-dialog__body {
-  padding: 20px 20px 0;
-  box-sizing: border-box;
-}
-
-.global-window {
-  // top: 80px !important;
-  // left: 218px !important;
-  // 澶撮儴鏍囬
-  ::v-deep .el-dialog__header {
-    padding: 19px 24px;
-    height: 56px;
-    line-height: 18px;
-    box-sizing: border-box;
-    border-bottom: 1px solid #eee;
-    // text-align: center;
-    .el-dialog__headerbtn {
-      width: 18px;
-      height: 18px;
-      .el-dialog__close {
-        width: 18px;
-        height: 18px;
-        font-size: 19px;
-        line-height: 18px;
-      }
-    }
-  }
-  // 涓讳綋
-  .window__body {
-    min-height: 200px;
-  }
-  .window__footer {
-      user-select: none;
-      border-top: 1px solid #eee;
-      height: 60px;
-      line-height: 60px;
-      text-align: center;
-    }
-}
-</style>
diff --git a/platform/src/components/common/GlobalWindow.vue b/platform/src/components/common/GlobalWindow.vue
deleted file mode 100644
index 298b468..0000000
--- a/platform/src/components/common/GlobalWindow.vue
+++ /dev/null
@@ -1,142 +0,0 @@
-<template>
-  <el-drawer
-    class="global-window"
-    title="title"
-    :visible="visible"
-    :with-header="true"
-    :size="width"
-    :close-on-press-escape="false"
-    :wrapper-closable="false"
-    :append-to-body="true"
-    :modal="false"
-    @close="close"
-  >
-    <div slot="title" class="window__header">
-      <span class="header__btn-back" @click="close"><i class="el-icon-arrow-left"></i></span>{{title}}
-      <!-- {{title}} -->
-    </div>
-    <div class="window__body">
-      <slot></slot>
-    </div>
-    <div v-if="withFooter" class="window__footer">
-      <slot name="footer">
-        <el-button @click="confirm" :loading="confirmWorking" type="primary">{{text}}</el-button>
-        <el-button @click="close">杩斿洖</el-button>
-      </slot>
-    </div>
-  </el-drawer>
-</template>
-
-<script>
-export default {
-  name: 'GlobalWindow',
-  props: {
-    width: {
-      type: String,
-      default: '100%'
-    },
-    // 鏄惁鍖呭惈搴曢儴鎿嶄綔
-    withFooter: {
-      type: Boolean,
-      default: true
-    },
-    // 鎻愪氦鎸夐挳鏂囧瓧
-    text: {
-      type: String,
-      default: '纭畾'
-    },
-    // 纭鎸夐挳loading鐘舵��
-    confirmWorking: {
-      type: Boolean,
-      default: false
-    },
-    // 鏍囬
-    title: {
-      type: String,
-      default: ''
-    },
-    // 鏄惁灞曠ず
-    visible: {
-      type: Boolean,
-      required: true
-    }
-  },
-  methods: {
-    confirm () {
-      this.$emit('confirm')
-    },
-    close () {
-      this.$emit('update:visible', false)
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-// 杈撳叆妗嗛珮搴�
-$input-height: 32px;
-.global-window {
-  top: 80px !important;
-  left: 250px !important;
-  // 澶撮儴鏍囬
-  ::v-deep .el-drawer__header {
-    padding: 0 10px 0 0;
-    line-height: 40px;
-    border-bottom: 1px solid #eee;
-    // text-align: center;
-    font-weight: 500;
-    color: #222;
-    // 杩斿洖鎸夐挳
-    .header__btn-back {
-      display: inline-block;
-      width: 30px;
-      background: $primary-color;
-      color: #fff;
-      text-align: center;
-      margin-right: 12px;
-      border-right: 1px solid #eee;
-    }
-    .el-drawer__close-btn:focus {
-      outline: none;
-    }
-  }
-  // 涓讳綋
-  ::v-deep .el-drawer__body {
-    display: flex;
-    flex-direction: column;
-    position: absolute;
-    top: 40px;
-    bottom: 0;
-    width: 100%;
-    overflow: hidden;
-    // background-color: #f7f7f7;
-    // 鍐呭
-    .window__body {
-      // width: 1100px;
-      // margin: 0 auto;
-      // background-color: #fff;
-      width: 100%;
-      height: 100%;
-      overflow-y: auto;
-      padding: 12px 16px;
-      // 鏍囩
-      // .el-form-item__label {
-      //   float: none;
-      // }
-      // 鍏冪礌瀹藉害涓�100%
-      .el-form-item__content > *{
-        width: 100%;
-      }
-    }
-    // 灏鹃儴
-    .window__footer {
-      user-select: none;
-      border-top: 1px solid #eee;
-      height: 60px;
-      line-height: 60px;
-      text-align: center;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/common/Header.vue b/platform/src/components/common/Header.vue
deleted file mode 100644
index 1800c40..0000000
--- a/platform/src/components/common/Header.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-<template>
-  <div class="main-header">
-    <div class="header">
-      <h2>
-        <i class="el-icon-s-unfold" v-if="menuData.collapse" @click="switchCollapseMenu(null)"></i>
-        <i class="el-icon-s-fold" v-else @click="switchCollapseMenu(null)"></i>
-        {{title}}
-      </h2>
-      <tagsview class="tags"></tagsview>
-    </div>
-  </div>
-</template>
-
-<script>
-import { mapState, mapMutations } from 'vuex'
-import tagsview from "./tagsview.vue"
-export default {
-  name: 'Header',
-  components: { tagsview },
-  computed: {
-    ...mapState(['menuData']),
-    title () {
-      return this.$route.meta.title
-    }
-  },
-  methods: {
-    ...mapMutations(['switchCollapseMenu']),
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-.header {
-  overflow: hidden;
-  padding: 0 25px;
-  background: #fff;
-  height: 100%;
-  display: flex;
-  overflow: hidden;
-  h2 {
-    flex-shrink: 0;
-    line-height: 48px;
-    width: 200px;
-    font-size: 19px;
-    color: #606263;
-    font-weight: normal;
-    display: inline;
-    & > i {
-      font-size: 20px;
-      margin-right: 12px;
-    }
-  }
-}
-// .tags {
-//     padding-bottom: 16px;
-//   }
-
-</style>
diff --git a/platform/src/components/common/ImportButton.vue b/platform/src/components/common/ImportButton.vue
deleted file mode 100644
index 04510be..0000000
--- a/platform/src/components/common/ImportButton.vue
+++ /dev/null
@@ -1,37 +0,0 @@
-<template>
-  <div class="import-button">
-    <el-button type="primary" @click="$refs.importWindow.open(text)">{{text}}</el-button>
-    <ImportWindow :action="action" :template-path="templatePath" :template-name="templateName" ref="importWindow" @download="$emit('download')" @success="handleSuccess"/>
-  </div>
-</template>
-
-<script>
-import ImportWindow from './ImportWindow'
-export default {
-  name: 'ImportButton',
-  components: { ImportWindow },
-  props: {
-    // 鎸夐挳鏂囨
-    text: {
-      default: '瀵煎叆'
-    },
-    // 妯$増鍦板潃
-    templatePath: {
-      required: true
-    },
-    // 涓嬭浇鍚庣殑妯$増鏂囦欢鍚嶇О
-    templateName: {
-      required: true
-    },
-    // 瀵煎叆鎺ュ彛鍦板潃
-    action: {
-      required: true
-    }
-  },
-  methods: {
-    handleSuccess () {
-      this.$emit('success')
-    }
-  }
-}
-</script>
diff --git a/platform/src/components/common/ImportWindow.vue b/platform/src/components/common/ImportWindow.vue
deleted file mode 100644
index 8e05ddb..0000000
--- a/platform/src/components/common/ImportWindow.vue
+++ /dev/null
@@ -1,204 +0,0 @@
-<template>
-  <el-dialog
-    width="500px"
-    :title="title"
-    :visible.sync="visible"
-    append-to-body
-    custom-class="eva-dialog import-window"
-    :close-on-click-modal="false"
-    :close-on-press-escape="false"
-    :show-close="false"
-  >
-    <el-form>
-      <el-form-item>
-        <el-upload
-          drag
-          :show-file-list="false"
-          action="none"
-          accept=".xlsx, .xls"
-          :before-upload="handleBeforeUpload"
-        >
-          <template v-if="form.file == null">
-            <i class="el-icon-upload"></i>
-            <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
-          </template>
-          <template v-else>
-            <i class="el-icon-files"></i>
-            <div class="el-upload__text">{{form.file.name}}<em></em></div>
-          </template>
-        </el-upload>
-      </el-form-item>
-    </el-form>
-    
-    <div slot="footer" class="import-window__footer">
-      <!-- <div class="sync-exists">
-        <el-checkbox v-model="form.sync"/><span>鍚屾宸插瓨鍦ㄧ殑鏁版嵁</span>
-      </div> -->
-      <div class="opera">
-        <a href=""></a>
-        <el-button type="text" icon="el-icon-download" @click="downloadTemplate">涓嬭浇妯$増</el-button>
-        <el-button @click="cancel">{{cancelText}}</el-button>
-        <el-button type="primary" @click="confirm" :loading="isWorking">{{confirmText}}</el-button>
-      </div>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import request from '@/utils/request'
-export default {
-  name: 'ImportWindow',
-  props: {
-    // 瀵煎叆鎺ュ彛鍦板潃
-    action: {
-      required: true
-    },
-    // 纭鎸夐挳鏂囨
-    confirmText: {
-      type: String,
-      default: '瀵煎叆'
-    },
-    
-    // 鍙栨秷鎸夐挳鏂囨
-    cancelText: {
-      type: String,
-      default: '鍙栨秷'
-    },
-    // 妯$増鍦板潃
-    templatePath: {
-      required: true
-    },
-    // 涓嬭浇鍚庣殑妯$増鏂囦欢鍚嶇О
-    templateName: {
-      required: true
-    }
-  },
-  data () {
-    return {
-      visible: false,
-      isWorking: false,
-      title: '瀵煎叆鏁版嵁',
-      form: {
-        sync: false,
-        file: false,
-        categoryId: ''
-      }
-    }
-  },
-  methods: {
-    /**
-     * 鎵撳紑绐楀彛
-     *
-     * @param title 绐楀彛鏍囬
-     */
-    open (title) {
-      this.visible = true
-      this.title = title
-      this.form.sync = false
-      this.form.file = null
-    },
-    /**
-     * 纭畾瀵煎叆
-     */
-    confirm () {
-      if (this.form.file == null) {
-        this.$tip.warning('璇烽�夋嫨鏂囦欢')
-        return
-      }
-      this.isWorking = true
-      const param = new FormData()
-      param.set('file', this.form.file)
-      request.post(this.action, param, {
-        headers: {
-          'Content-Type': 'multipart/form-data;charset=UTF-8'
-        }
-      })
-        .then(() => {
-          this.$tip.success('瀵煎叆鎴愬姛')
-          this.visible = false
-          this.$emit('success')
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking = false
-        })
-    },
-    /**
-     * 鍙栨秷
-     */
-    cancel () {
-      this.visible = false
-    },
-    /**
-     * 涓嬭浇妯$増
-     */
-    downloadTemplate () {
-      const link = document.createElement('a')
-      link.setAttribute('download', this.templateName) //涓嬭浇鐨勬枃浠跺悕
-      console.log(`${window.location.origin}${process.env.VUE_APP_CONTEXT_PATH}${this.templatePath}`);
-      link.href = `${window.location.origin}${process.env.VUE_APP_CONTEXT_PATH}${this.templatePath}`  //鏂囦欢url
-      link.click()
-      // this.$emit('download')
-    },
-    /**
-     * 鏂囦欢涓婁紶鍓嶅瓨鍌ㄤ笂浼犵殑鏂囦欢
-     *
-     * @param file 闇�瀵煎叆鐨勬枃浠�
-     */
-    handleBeforeUpload (file) {
-      this.form.file = file
-      return false
-    }
-  }
-}
-</script>
-
-<style lang="scss">
-@import "../../assets/style/variables";
-.import-window {
-  .el-upload {
-    width: 100%;
-    .el-upload-dragger {
-      width: 100%;
-      .el-icon-upload, .el-icon-files {
-        font-size: 67px;
-        color: #C0C4CC;
-        margin: 40px 0 16px;
-        line-height: 50px;
-      }
-    }
-  }
-  .import-window__footer {
-    display: flex;
-    .sync-exists {
-      width: 200px;
-      flex-shrink: 0;
-      text-align: left;
-      font-size: 13px;
-      display: flex;
-      align-items: center;
-      .el-checkbox {
-        margin-right: 10px;
-      }
-      & > * {
-        vertical-align: middle;
-      }
-    }
-    .opera {
-      flex-grow: 1;
-      a {
-        font-size: 12px;
-        margin-right: 10px;
-        text-decoration: none;
-        .el-icon-download {
-          font-size: 15px;
-          position: relative;
-          top: 2px;
-        }
-      }
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/common/Light.vue b/platform/src/components/common/Light.vue
deleted file mode 100644
index 433a66a..0000000
--- a/platform/src/components/common/Light.vue
+++ /dev/null
@@ -1,125 +0,0 @@
-<template>
-  <div class="light" :class="{normal: !warn && !danger, warn: !danger && warn, danger, mini: mini}">
-    <em><i></i></em>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'Light',
-  props: {
-    warn: {
-      type: Boolean,
-      default: false
-    },
-    danger: {
-      type: Boolean,
-      default: false
-    },
-    mini: {
-      type: Boolean,
-      default: false
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-$cycle-size01: 16px;
-$cycle-size02: 6px;
-$normal-color: #00CC99;
-$shadow-color: #00CCa9;
-$warn-color: #FFCC33;
-$warn-shadow-color: #FFCbe3;
-$danger-color: #FF3300;
-$dange-shadowr-color: #FF3310;
-@mixin light-status ($cycle-bg) {
-  em {
-    background: $cycle-bg;
-    i {
-      background: mix($cycle-bg,  #000030, 0.5);
-    }
-  }
-}
-.light {
-  display: inline-block;
-  border-radius: 50%;
-  em {
-    width: $cycle-size01;
-    height: $cycle-size01;
-    border-radius: 50%;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    i {
-      display: block;
-      width: $cycle-size02;
-      height: $cycle-size02;
-      border-radius: 50%;
-    }
-  }
-  &.mini {
-    em {
-      width: 12px;
-      height: 12px;
-    }
-  }
-  // 姝e父
-  &.normal {
-    @include light-status($normal-color);
-    animation: shine-normal infinite 1s;
-  }
-  // 璀﹀憡
-  &.warn {
-    @include light-status($warn-color);
-    animation: shine-warn infinite .8s;
-  }
-  // 鍗遍櫓
-  &.danger {
-    @include light-status($danger-color);
-    animation: shine-danger infinite .5s;
-  }
-}
-@keyframes shine-normal {
-  0% {
-    box-shadow: 0 0 5px $shadow-color;
-  }
-  25% {
-    box-shadow: 0 0 10px $shadow-color;
-  }
-  50% {
-    box-shadow: 0 0 15px $shadow-color;
-  }
-  100% {
-    box-shadow: 0 0 20px $shadow-color;
-  }
-}
-@keyframes shine-warn {
-  0% {
-    box-shadow: 0 0 5px $warn-shadow-color;
-  }
-  25% {
-    box-shadow: 0 0 10px $warn-shadow-color;
-  }
-  50% {
-    box-shadow: 0 0 15px $warn-shadow-color;
-  }
-  100% {
-    box-shadow: 0 0 20px $warn-shadow-color;
-  }
-}
-@keyframes shine-danger {
-  0% {
-    box-shadow: 0 0 5px $dange-shadowr-color;
-  }
-  25% {
-    box-shadow: 0 0 10px $dange-shadowr-color;
-  }
-  50% {
-    box-shadow: 0 0 15px $dange-shadowr-color;
-  }
-  100% {
-    box-shadow: 0 0 20px $dange-shadowr-color;
-  }
-}
-</style>
diff --git a/platform/src/components/common/Menu.vue b/platform/src/components/common/Menu.vue
deleted file mode 100644
index b928666..0000000
--- a/platform/src/components/common/Menu.vue
+++ /dev/null
@@ -1,156 +0,0 @@
-<template>
-  <div class="menu" :class="{collapse: menuData.collapse}">
-    <scrollbar>
-      <el-menu
-        ref="menu"
-        :default-active="activeIndex"
-        text-color="#fff"
-        active-text-color="#fff"
-        :collapse="menuData.collapse"
-        :default-openeds="defaultOpeneds"
-        :collapse-transition="false"
-        unique-opened
-        @select="handleSelect"
-      >
-        <MenuItems v-for="menu in menuData.list" :key="menu.index" :menu="menu" :is-root-menu="true"/>
-      </el-menu>
-    </scrollbar>
-  </div>
-</template>
-
-<script>
-import { mapState } from 'vuex'
-import MenuItems from './MenuItems'
-import Scrollbar from './Scrollbar'
-export default {
-  name: 'Menu',
-  components: { Scrollbar, MenuItems },
-  computed: {
-    ...mapState(['menuData']),
-    // 閫変腑鐨勮彍鍗昳ndex
-    activeIndex () {
-      let path = this.$route.path
-      if (path.endsWith('/')) {
-        path = path.substring(0, path.length - 1)
-      }
-      const menuConfig = this.__getMenuConfig(path, 'url', this.menuData.list)
-      if (menuConfig == null) {
-        return null
-      } else {
-        this.$store.commit("pushtags", menuConfig)
-      }
-      // console.log(menuConfig.index);
-      return menuConfig.index
-    },
-    // 榛樿灞曞紑鐨勮彍鍗昳ndex
-    defaultOpeneds () {
-      // return this.menuData.list.map(menu => menu.index)
-      
-      return [this.menuData.list[0].index]
-    }
-  },
-  methods: {
-    // 澶勭悊鑿滃崟閫変腑
-    handleSelect (menuIndex) {
-      const menuConfig = this.__getMenuConfig(menuIndex, 'index', this.menuData.list)
-      // 鎵句笉鍒伴〉闈�
-      try {
-        require('@/views' + menuConfig.url)
-      } catch (e) {
-        this.$tip.error('鏈壘鍒伴〉闈㈡枃浠禓/views' + menuConfig.url + '.vue锛岃妫�鏌ヨ彍鍗曡矾寰勬槸鍚︽纭�')
-      }
-      // 鐐瑰嚮褰撳墠鑿滃崟涓嶅仛澶勭悊
-      if (menuConfig.url === this.$route.path) {
-        return
-      }
-      if (menuConfig.url == null || menuConfig.url.trim().length === 0) {
-        return
-      }
-      
-      this.$router.push(menuConfig.url)
-      this.$store.commit("pushtags", menuConfig)
-    },
-    // 鑾峰彇鑿滃崟閰嶇疆
-    __getMenuConfig (value, key, menus) {
-      for (const menu of menus) {
-        if (menu[key] === value) {
-          return menu
-        }
-        if (menu.children != null && menu.children.length > 0) {
-          const menuConfig = this.__getMenuConfig(value, key, menu.children)
-          if (menuConfig != null) {
-            return menuConfig
-          }
-        }
-      }
-      return null
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-.menu {
-  height: 100%;
-  display: flex;
-  flex-direction: column;
-}
-</style>
-<style lang="scss">
-@import "@/assets/style/variables.scss";
-// 鑿滃崟鏍峰紡
-.el-menu {
-  border-right: 0 !important;
-  user-select: none;
-  background: $primary-color !important;
-  .el-menu-item {
-    background: $primary-color;
-    // 閫変腑鐘舵��
-    &.is-active {
-      background: $primary-color-sel !important;
-    }
-    // 鎮诞
-    &:hover {
-      background-color: $primary-color-hover;
-    }
-    &:focus {
-      background: $primary-color;
-    }
-  }
-  // 瀛愯彍鍗�
-  .el-submenu {
-    .el-submenu__title{
-      background-color: $primary-color;
-    }
-    &.is-active {
-      .el-submenu__title{
-        background-color: $icon-background-color;
-      }
-      .el-menu .el-menu-item{
-        background-color: $icon-background-color;
-        // 鎮诞
-        &:hover {
-          background-color: $icon-background-color;
-        }
-      }
-    }
-    // 鑿滃崟涓婁笅绠ご
-    .el-submenu__title i {
-      color: #f7f7f7;
-    }
-  }
-  // 鑿滃崟鍥炬爣
-  i:not(.el-submenu__icon-arrow) {
-    color: #f7f7f7 !important;
-    position: relative;
-    top: -1px;
-    // 鑷畾涔夊浘鏍�
-    &[class^="eva-icon-"] {
-      width: 24px;
-      margin-right: 5px;
-      background-size: 15px;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/common/MenuItems.vue b/platform/src/components/common/MenuItems.vue
deleted file mode 100644
index 3c2276e..0000000
--- a/platform/src/components/common/MenuItems.vue
+++ /dev/null
@@ -1,25 +0,0 @@
-<template>
-  <el-menu-item v-if="menu.children == null || menu.children.length == 0" :key="menu.index" :index="menu.index">
-    <i :class="menu.icon"></i>
-    <span slot="title">{{menu.label}}</span>
-  </el-menu-item>
-  <el-submenu v-else :index="menu.index">
-    <template slot="title">
-      <i :class="menu.icon"></i>
-      <span slot="title">{{menu.label}}</span>
-    </template>
-    <MenuItems v-for="child in menu.children" :menu="child" :key="child.index"/>
-  </el-submenu>
-</template>
-
-<script>
-export default {
-  name: 'MenuItems',
-  props: {
-    menu: {
-      type: Object,
-      required: true
-    }
-  }
-}
-</script>
diff --git a/platform/src/components/common/MenuSelect.vue b/platform/src/components/common/MenuSelect.vue
deleted file mode 100644
index 3471617..0000000
--- a/platform/src/components/common/MenuSelect.vue
+++ /dev/null
@@ -1,98 +0,0 @@
-<template>
-  <TreeSelect
-    :placeholder="placeholder"
-    :value="value"
-    :data="data"
-    :append-to-body="appendToBody"
-    :clearable="clearable"
-    :inline="inline"
-    @input="$emit('input', $event)"
-  />
-</template>
-
-<script>
-import TreeSelect from './TreeSelect'
-import { fetchTree, fetchTree1 } from '@/api/system/menu'
-export default {
-  name: 'MenuSelect',
-  components: { TreeSelect },
-  props: {
-    value: {},
-    inline: {
-      default: true
-    },
-    type: {
-      default: '0'
-    },
-    placeholder: {
-      default: '璇烽�夋嫨鑿滃崟'
-    },
-    // 鏄惁鍙竻绌�
-    clearable: {
-      default: false
-    },
-    appendToBody: {
-      default: false
-    },
-    // 闇�琚帓闄ょ殑閮ㄩ棬ID
-    excludeId: {}
-  },
-  data () {
-    return {
-      data: []
-    }
-  },
-  watch: {
-    excludeId () {
-      this.fetchData()
-    }
-  },
-  methods: {
-    // 鑾峰彇鎵�鏈夎彍鍗�
-    fetchData () {
-      if (this.type === '1') {
-        fetchTree1()
-          .then(records => {
-            this.data = []
-            this.__fillData(this.data, records)
-          })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
-      } else {
-        fetchTree()
-          .then(records => {
-            this.data = []
-            this.__fillData(this.data, records)
-          })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
-      }
-    },
-    // 濉厖鑿滃崟鏍�
-    __fillData (list, pool) {
-      for (const menu of pool) {
-        if (menu.id === this.excludeId) {
-          continue
-        }
-        const menuNode = {
-          id: menu.id,
-          label: menu.name
-        }
-        list.push(menuNode)
-        if (menu.children != null && menu.children.length > 0) {
-          menuNode.children = []
-          this.__fillData(menuNode.children, menu.children)
-          if (menuNode.children.length === 0) {
-            menuNode.children = undefined
-          }
-        }
-      }
-    }
-  },
-  created () {
-    this.fetchData()
-  }
-}
-</script>
diff --git a/platform/src/components/common/NotAllow.vue b/platform/src/components/common/NotAllow.vue
deleted file mode 100644
index 743d325..0000000
--- a/platform/src/components/common/NotAllow.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-<template>
-  <div class="not-allow">
-    <slot>
-      <div class="content">
-        <img src="../../assets/images/not-allow.png">
-        <h2>鏃犳潈璁块棶</h2>
-        <p>濡傛偍闇�瑕佽闂椤甸潰锛岃鑱旂郴绯荤粺绠$悊鍛�</p>
-      </div>
-    </slot>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'NotAllow'
-}
-</script>
-
-<style scoped lang="scss">
-.not-allow {
-  height: 100%;
-  background: #fff;
-  box-sizing: border-box;
-  padding-top: 160px;
-  .content {
-    height: 200px;
-    text-align: center;
-    h2 {
-      font-size: 18px;
-      font-weight: normal;
-      margin-top: 8px;
-    }
-    p {
-      font-size: 13px;
-      color: #999;
-      margin: 6px 0;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/common/Pagination.vue b/platform/src/components/common/Pagination.vue
deleted file mode 100644
index 86ea4d2..0000000
--- a/platform/src/components/common/Pagination.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-<template>
-  <div class="table-pagination">
-    <el-pagination
-      :current-page="pagination.pageIndex"
-      :page-sizes="pagination.pageSizes||[10, 20, 30, 40]"
-      :page-size="pagination.pageSize"
-      layout="total, sizes, prev, pager, next, jumper"
-      :total="pagination.total"
-      @size-change="sizeChange"
-      @current-change="currentChange"
-      background>
-    </el-pagination>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'Pagination',
-  props: {
-    pagination: {
-      type: Object,
-      default: function () {
-        return {}
-      }
-    }
-  },
-  data () {
-    return {
-    }
-  },
-  methods: {
-    sizeChange (value) {
-      this.$emit('size-change', value)
-    },
-    currentChange (value) {
-      this.$emit('current-change', value)
-    }
-  }
-}
-</script>
diff --git a/platform/src/components/common/PositionSelect.vue b/platform/src/components/common/PositionSelect.vue
deleted file mode 100644
index 7ff6b2b..0000000
--- a/platform/src/components/common/PositionSelect.vue
+++ /dev/null
@@ -1,103 +0,0 @@
-<template>
-  <TreeSelect
-    :placeholder="placeholder"
-    :value="value"
-    :data="data"
-    :clearable="clearable"
-    :append-to-body="appendToBody"
-    :inline="inline"
-    :multiple="multiple"
-    :flat="multiple"
-    @input="$emit('input', $event)"
-  />
-</template>
-
-<script>
-import TreeSelect from './TreeSelect'
-import { fetchTree } from '@/api/system/position'
-export default {
-  name: 'PositionSelect',
-  components: { TreeSelect },
-  props: {
-    value: {},
-    inline: {
-      default: true
-    },
-    multiple: {
-      default: false
-    },
-    placeholder: {
-      default: '璇烽�夋嫨宀椾綅'
-    },
-    // 鏄惁鍙竻绌�
-    clearable: {
-      default: false
-    },
-    appendToBody: {
-      default: false
-    },
-    // 闇�琚帓闄ょ殑閮ㄩ棬ID
-    excludeId: {}
-  },
-  data () {
-    return {
-      data: []
-    }
-  },
-  watch: {
-    excludeId () {
-      this.fetchData()
-    }
-  },
-  methods: {
-    // 鑾峰彇鎵�鏈夊矖浣�
-    fetchData () {
-      fetchTree()
-        .then(records => {
-          this.data = []
-          this.__fillData(this.data, records)
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-    },
-    // 濉厖宀椾綅鏍�
-    __fillData (list, pool) {
-      for (const dept of pool) {
-        if (dept.id === this.excludeId) {
-          continue
-        }
-        const deptNode = {
-          id: dept.id,
-          label: dept.name
-        }
-        list.push(deptNode)
-        if (dept.children != null && dept.children.length > 0) {
-          deptNode.children = []
-          this.__fillData(deptNode.children, dept.children)
-          if (deptNode.children.length === 0) {
-            deptNode.children = undefined
-          }
-        }
-      }
-    }
-  },
-  created () {
-    this.fetchData()
-  }
-}
-</script>
-<style scoped lang="scss">
-.inline {
-  width: 178px;
-}
-.vue-treeselect {
-  line-height: 30px;
-  ::deep .vue-treeselect__control {
-    height: 32px;
-    .vue-treeselect__single-value {
-      line-height: 30px;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/common/Profile.vue b/platform/src/components/common/Profile.vue
deleted file mode 100644
index 3bfefc9..0000000
--- a/platform/src/components/common/Profile.vue
+++ /dev/null
@@ -1,34 +0,0 @@
-<template>
-  <div v-if="containRoles(roles) && containPermissions(permissions)">
-    <slot></slot>
-  </div>
-  <div v-else class="not-allow-wrap">
-    <slot name="not-allow"><NotAllow/></slot>
-  </div>
-</template>
-
-<script>
-import BasePage from '@/components/base/BasePage'
-import NotAllow from './NotAllow'
-export default {
-  name: 'Profile',
-  components: { NotAllow },
-  extends: BasePage,
-  props: {
-    permissions: {
-      type: Array
-    },
-    roles: {
-      type: Array
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.not-allow-wrap {
-  height: 100%;
-  padding: 10px 16px;
-  box-sizing: border-box;
-}
-</style>
diff --git a/platform/src/components/common/Scrollbar.vue b/platform/src/components/common/Scrollbar.vue
deleted file mode 100644
index 9df1457..0000000
--- a/platform/src/components/common/Scrollbar.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-<template>
-  <vue-scroll :ops="options">
-    <slot></slot>
-  </vue-scroll>
-</template>
-
-<script>
-import VueScroll from 'vuescroll'
-export default {
-  name: 'Scrollbar',
-  components: { VueScroll },
-  data () {
-    return {
-      options: {
-        bar: {
-          background: 'rgba(20,20,20,.3)'
-        }
-      }
-    }
-  }
-}
-</script>
diff --git a/platform/src/components/common/SearchFormCollapse.vue b/platform/src/components/common/SearchFormCollapse.vue
deleted file mode 100644
index 5e602b8..0000000
--- a/platform/src/components/common/SearchFormCollapse.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-<template>
-  <div class="search-form-collapse" :class="{'collapse__hidden': !showMore}">
-    <slot></slot>
-    <el-button v-if="!showMore" class="collapse__switch" @click="showMore = true">鏇村鏌ヨ...</el-button>
-    <el-button v-else class="collapse__switch" @click="showMore = false">鏀惰捣</el-button>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'SearchFormCollapse',
-  data () {
-    return {
-      showMore: false
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.search-form-collapse {
-  position: relative;
-  padding-right: 75px;
-  height: auto;
-  .collapse__switch {
-    position: absolute;
-    top: 0;
-    right: 0;
-  }
-  &.collapse__hidden {
-    height: 50px;
-    overflow: hidden;
-    padding-right: 250px;
-    ::v-deep section {
-      position: absolute;
-      top: 0;
-      right: 100px;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/common/TreeSelect.vue b/platform/src/components/common/TreeSelect.vue
deleted file mode 100644
index d9cf2e6..0000000
--- a/platform/src/components/common/TreeSelect.vue
+++ /dev/null
@@ -1,67 +0,0 @@
-<!-- 缁勪欢璇︽儏璇峰弬闃呭畼鏂规枃妗o細https://www.vue-treeselect.cn/ -->
-<template>
-  <vue-tree-select
-    :class="{inline}"
-    :placeholder="placeholder"
-    :value="value"
-    :options="data"
-    :clearable="clearable"
-    :flat="flat"
-    :append-to-body="appendToBody"
-    :multiple="multiple"
-    no-children-text="鏃犺褰�"
-    no-options-text="鏃犺褰�"
-    no-results-text="鏈尮閰嶅埌鏁版嵁"
-    @input="$emit('input', $event)"
-  />
-</template>
-
-<script>
-import VueTreeSelect from '@riophae/vue-treeselect'
-import '@riophae/vue-treeselect/dist/vue-treeselect.css'
-export default {
-  name: 'TreeSelect',
-  props: {
-    inline: {
-      default: false
-    },
-    multiple: {
-      default: false
-    },
-    flat: {
-      default: false
-    },
-    value: {},
-    placeholder: {
-      default: '璇烽�夋嫨'
-    },
-    // 鏄惁鍙竻绌�
-    clearable: {
-      default: false
-    },
-    data: {
-      type: Array,
-      required: true
-    },
-    appendToBody: {
-      default: false
-    }
-  },
-  components: { VueTreeSelect }
-}
-</script>
-
-<style scoped lang="scss">
-  .inline {
-    width: 178px;
-  }
-  .vue-treeselect {
-    line-height: 30px;
-    ::v-deep .vue-treeselect__control {
-      height: 32px;
-      .vue-treeselect__single-value {
-        line-height: 30px;
-      }
-    }
-  }
-</style>
diff --git a/platform/src/components/common/UploadAvatarImage.vue b/platform/src/components/common/UploadAvatarImage.vue
deleted file mode 100644
index 006c06c..0000000
--- a/platform/src/components/common/UploadAvatarImage.vue
+++ /dev/null
@@ -1,128 +0,0 @@
-<template>
-  <div>
-    <el-upload
-      class="avatar-uploader"
-      accept=".png,.jpg"
-      :style="customStyle"
-      :action="uploadImgUrl"
-      :data="uploadData"
-      :show-file-list="false"
-      :on-success="handleAvatarSuccess"
-      :on-error="uploadError"
-      :before-upload="beforeAvatarUpload">
-      <img v-if=" file.imgurlfull" :src="file.imgurlfull" :style="customStyle" class="avatar">
-      <div v-else :style="customStyle">
-        <i class="el-icon-plus avatar-uploader-icon"></i>
-        <div class="tips-style">{{ tipsLabel }}</div>
-      </div>
-    </el-upload>
-  </div>
-
-</template>
-
-<script>
-export default {
-  props: {
-    file: {
-      type: Object,
-      default: () => {}
-    },
-    tipsLabel: '',
-    customStyle: {
-      type: String,
-      default: 'width: 90px; height: 90px;'
-    },
-    uploadData: Object
-  },
-  data() {
-    return {
-      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
-    }
-  },
-
-  methods: {
-    // 涓婁紶鍥剧墖
-    handleAvatarSuccess(res, file) {
-      if (res.code == 200) {
-        let { data } = res
-        this.file.imgurl = data.imgaddr;
-        this.file.imgurlfull = data.url;
-        this.$message.success('涓婁紶鎴愬姛')
-        this.$emit('uploadSuccess', { imgurl: data.imgaddr, imgurlfull: data.url, name: data.originname })
-      } else {
-        this.$tip.apiFailed('涓婁紶澶辫触')
-      }
-      this.$emit('uploadEnd')
-    },
-    uploadError() {
-      this.$tip.apiFailed('涓婁紶澶辫触')
-      this.$emit('endUpload')
-    },
-    // // 鎷︽埅
-    beforeAvatarUpload(file) {
-      this.$emit('uploadBegin')
-      return true
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-$image-width: 100px;
-.avatar-uploader {
-  width: $image-width;
-  height: $image-width;
-}
-::v-deep .el-upload {
-  border: 1px dashed #d9d9d9;
-  border-radius: 6px;
-  cursor: pointer;
-  position: relative;
-  width: $image-width;
-  height: $image-width;
-  overflow: hidden;
-}
-.avatar-uploader .el-upload:hover {
-  border-color: #409EFF;
-}
-.avatar-uploader-icon {
-  line-height: 90px;
-  font-size: 28px;
-  color: #8c939d;
-  width: $image-width;
-  height: $image-width;
-  text-align: center;
-}
-.avatar {
-  width: $image-width;
-  height: $image-width;
-  display: block;
-}
-.tips-style {
-  height: 13px;
-  font-size: 13px;
-  font-weight: 400;
-  color: #999999;
-  line-height: 13px;
-}
-</style>
-<style lang="scss" scoped>
-::v-deep .el-upload--picture-card{
-  width: 90px !important;
-  height: 90px !important;
-}
-::v-deep .el-upload-list__item {
-  width: 90px !important;
-  height: 90px !important;
-}
-.icon {
-  -webkit-transform: translate(-50%,-50%);
-  -ms-transform: translate(-50%,-50%);
-  transform: translate(0%, -85%);
-}
-::v-deep .el-upload-list__item {
-  width: 90px !important;
-  height: 90px !important;
-}
-</style>
-
diff --git a/platform/src/components/common/UploadAvatarVideo.vue b/platform/src/components/common/UploadAvatarVideo.vue
deleted file mode 100644
index 5031b58..0000000
--- a/platform/src/components/common/UploadAvatarVideo.vue
+++ /dev/null
@@ -1,128 +0,0 @@
-<template>
-  <div>
-    <el-upload
-      class="avatar-uploader"
-      accept=".mp4"
-      :style="customStyle"
-      :action="uploadImgUrl"
-      :data="uploadData"
-      :show-file-list="false"
-      :on-success="handleAvatarSuccess"
-      :on-error="uploadError"
-      :before-upload="beforeAvatarUpload">
-      <video v-if="file.videourlfull" :src="file.videourlfull" :style="customStyle" class="avatar" />
-      <div v-else :style="customStyle">
-        <i class="el-icon-plus avatar-uploader-icon"></i>
-        <div class="tips-style">{{ tipsLabel }}</div>
-      </div>
-    </el-upload>
-  </div>
-
-</template>
-
-<script>
-export default {
-  props: {
-    file: {
-      type: Object,
-      default: () => {}
-    },
-    tipsLabel: '',
-    customStyle: {
-      type: String,
-      default: 'width: 90px; height: 90px;'
-    },
-    uploadData: Object
-  },
-  data() {
-    return {
-      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
-    }
-  },
-
-  methods: {
-    // 涓婁紶鍥剧墖
-    handleAvatarSuccess(res, file) {
-      if (res.code == 200) {
-        let { data } = res
-        this.file.videourl = data.imgaddr;
-        this.file.videourlfull = data.url;
-        this.$message.success('涓婁紶鎴愬姛')
-        this.$emit('uploadSuccess', { imgurl: data.imgaddr, imgurlfull: data.url, name: data.originname })
-      } else {
-        this.$tip.apiFailed('涓婁紶澶辫触')
-      }
-      this.$emit('uploadEnd')
-    },
-    uploadError() {
-      this.$tip.apiFailed('涓婁紶澶辫触')
-      this.$emit('endUpload')
-    },
-    // // 鎷︽埅
-    beforeAvatarUpload(file) {
-      this.$emit('uploadBegin')
-      return true
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-$image-width: 100px;
-.avatar-uploader {
-  width: $image-width;
-  height: $image-width;
-}
-::v-deep .el-upload {
-  border: 1px dashed #d9d9d9;
-  border-radius: 6px;
-  cursor: pointer;
-  position: relative;
-  width: $image-width;
-  height: $image-width;
-  overflow: hidden;
-}
-.avatar-uploader .el-upload:hover {
-  border-color: #409EFF;
-}
-.avatar-uploader-icon {
-  line-height: 90px;
-  font-size: 28px;
-  color: #8c939d;
-  width: $image-width;
-  height: $image-width;
-  text-align: center;
-}
-.avatar {
-  width: $image-width;
-  height: $image-width;
-  display: block;
-}
-.tips-style {
-  height: 13px;
-  font-size: 13px;
-  font-weight: 400;
-  color: #999999;
-  line-height: 13px;
-}
-</style>
-<style lang="scss" scoped>
-::v-deep .el-upload--picture-card{
-  width: 90px !important;
-  height: 90px !important;
-}
-::v-deep .el-upload-list__item {
-  width: 90px !important;
-  height: 90px !important;
-}
-.icon {
-  -webkit-transform: translate(-50%,-50%);
-  -ms-transform: translate(-50%,-50%);
-  transform: translate(0%, -85%);
-}
-::v-deep .el-upload-list__item {
-  width: 90px !important;
-  height: 90px !important;
-}
-</style>
-
diff --git a/platform/src/components/common/UploadImage.vue b/platform/src/components/common/UploadImage.vue
deleted file mode 100644
index 67ccb8a..0000000
--- a/platform/src/components/common/UploadImage.vue
+++ /dev/null
@@ -1,155 +0,0 @@
-<template>
-  <div>
-    <el-upload
-      :action="uploadImgUrl"
-      :data="uploadData"
-      list-type="picture-card"
-      :file-list="fileList"
-      accept=".jpg,.png"
-      :before-upload="beforeUpload"
-      :on-success="uploadSuccess"
-      :on-error="fail"
-    >
-      <i class="el-icon-plus icon"></i>
-      <div slot="file" slot-scope="{file}">
-        <img
-          class="el-upload-list__item-thumbnail"
-          :src="file.url" alt=""
-          style="width: 100px;height: 100px;"
-        >
-        <span class="el-upload-list__item-actions">
-          <span
-            class="el-upload-list__item-preview"
-            @click="handlePictureCardPreview(file)"
-          >
-            <i class="el-icon-zoom-in"></i>
-          </span>
-          <span
-            class="el-upload-list__item-delete"
-            @click="handleRemove(file)"
-          >
-            <i class="el-icon-delete"></i>
-          </span>
-        </span>
-      </div>
-    </el-upload>
-    <el-image-viewer 
-      v-if="showViewer" 
-      :on-close="closeViewer"
-      :initialIndex="tempIndex"
-      :url-list="srcList"
-      :z-index="3000"
-    />
-  </div>
-  
-</template>
-
-<script>
-import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
-export default {
-  components: {
-    ElImageViewer
-  },
-  props: {
-    fileList: {
-      type: Array,
-      default: () => []
-    },
-    uploadData: Object,
-  },
-  data() {
-    return {
-      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal',
-      
-      realList: [],
-      srcList: [],
-      tempIndex: 0,
-      showViewer: false,
-    }
-  },
-  watch: {
-    fileList: {
-      handler(val) {
-        console.log(val);
-        if (val.length==0) {
-          this.realList = []
-          this.srcList = []
-        }
-      }
-      
-    }
-  },
-  methods: {
-    beforeUpload(file) {
-      
-      this.$emit('beginUpload')
-      return true
-    },
-     // 涓婁紶鍥剧墖鎴愬姛
-     uploadSuccess (res, file, fileList) {     
-      // console.log('this.fileList', this.fileList);
-      // console.log('fileList', fileList);
-      this.$emit('endUpload')
-      this.realList = fileList
-      this.srcList.push(res.data.url)
-      // console.log('file', file);
-      if (res.code === 200) {
-        this.fileList.push(
-          {
-            fileurl: res.data.imgaddr,
-            name: res.data.originname,
-            url: res.data.url
-          }
-        )
-      } else {
-        this.$message.error(res.msg || '涓婁紶澶辫触')
-      }
-    },
-    fail (err, file, fileList) {
-      this.$emit('endUpload')
-      this.$message.error('涓婁紶澶辫触')
-    },
-    handlePictureCardPreview(file) {
-      // this.tempIndex = this.srcList.findIndex(item => item == file.response.data.url )
-      // console.log(file);
-      this.tempIndex = this.fileList.findIndex(item => item.url == file.url )
-      // console.log( this.tempIndex);
-      this.srcList = this.fileList.map(item => item.url)
-      this.showViewer = true
-    },
-    closeViewer() {
-      this.showViewer = false
-    },
-    handleRemove(file) {
-      console.log(this.fileList);
-      let tempIndex = this.realList.findIndex(item => item.url === file.url)
-      // debugger
-      this.realList.splice(tempIndex, 1)
-      this.fileList.splice(tempIndex, 1)
-      this.srcList.splice(tempIndex, 1)
-      
-    },
-  },
-}
-</script>
-
-<style lang="scss" scoped>
-::v-deep .el-upload--picture-card{
-  width: 90px !important;
-  height: 90px !important;
-}
-::v-deep .el-upload-list__item {
-  width: 90px !important;
-  height: 90px !important;
-}
-.icon {
-  -webkit-transform: translate(-50%,-50%);
-  -ms-transform: translate(-50%,-50%);
-  transform: translate(0%, -85%);
-}
-::v-deep .el-upload-list__item {
-  width: 90px !important;
-  height: 90px !important;
-}
-</style>
-
diff --git a/platform/src/components/common/Value.vue b/platform/src/components/common/Value.vue
deleted file mode 100644
index 521529d..0000000
--- a/platform/src/components/common/Value.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-<template>
-  <div class="value">
-    <i class="el-icon-loading" v-if="data == null"></i>
-    <slot v-else>{{getValue()}}{{suffix}}</slot>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'Value',
-  props: {
-    data: {
-      type: Object
-    },
-    prop: {
-      type: String
-    },
-    suffix: {
-      type: String
-    },
-    handler: {
-      type: Function
-    }
-  },
-  methods: {
-    getValue () {
-      if (this.data == null) {
-        return ''
-      }
-      if (this.prop == null) {
-        return this.data
-      }
-      const props = this.prop.split('.')
-      let i = 0
-      let value = this.data
-      while (i < props.length) {
-        value = value[props[i]]
-        i++
-      }
-      if (this.handler == null) {
-        return value
-      }
-      return this.handler(value)
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.value {
-  word-break: break-all;
-  .el-icon-loading {
-    font-size: 16px;
-    color: #999;
-    position: relative;
-    top: 1px;
-  }
-}
-</style>
diff --git a/platform/src/components/system/datapermission/CustomSelect.vue b/platform/src/components/system/datapermission/CustomSelect.vue
deleted file mode 100644
index 48fe811..0000000
--- a/platform/src/components/system/datapermission/CustomSelect.vue
+++ /dev/null
@@ -1,50 +0,0 @@
-<template>
-  <component :is="component" :value="values" :inline="false" @input="handleInput" multiple/>
-</template>
-
-<script>
-export default {
-  name: 'CustomSelect',
-  props: {
-    value: {},
-    businessCode: {
-      type: String,
-      required: true
-    }
-  },
-  computed: {
-    // vuetreeselect鍊肩被鍨嬪尮閰嶏紙瑙e喅缂栬緫鏃舵棤娉曞垹闄ゅ凡鏈夊�肩殑BUG锛�
-    values () {
-      if (this.businessCode === 'DEPARTMENT' || this.businessCode === 'POSITION') {
-        const values = []
-        for (const id of this.value) {
-          values.push(parseInt(id))
-        }
-        return values
-      }
-      return this.value
-    },
-    component () {
-      // 閮ㄩ棬閫夋嫨鍣�
-      if (this.businessCode === 'DEPARTMENT') {
-        return () => import('@/components/common/DepartmentSelect')
-      }
-      // 宀椾綅閫夋嫨鍣�
-      if (this.businessCode === 'POSITION') {
-        return () => import('@/components/common/PositionSelect')
-      }
-      return null
-    }
-  },
-  methods: {
-    handleInput (value) {
-      this.$emit('input', value)
-      this.$emit('change', value)
-    }
-  }
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/platform/src/components/system/datapermission/DataPermModuleSelect.vue b/platform/src/components/system/datapermission/DataPermModuleSelect.vue
deleted file mode 100644
index 12bcb5f..0000000
--- a/platform/src/components/system/datapermission/DataPermModuleSelect.vue
+++ /dev/null
@@ -1,51 +0,0 @@
-<template>
-  <el-select
-    class="data-perm-module-select"
-    :class="{select__block: !inline}"
-    :value="value"
-    :placeholder="placeholder"
-    :clearable="clearable"
-    :disabled="disabled"
-    @change="$emit('change', $event)"
-    @input="$emit('input', $event)"
-  >
-    <el-option v-for="module in modules" :key="module.businessCode" :value="module.businessCode" :label="module.moduleName"/>
-  </el-select>
-</template>
-
-<script>
-import { fetchModules } from '@/api/system/dataPermission'
-export default {
-  name: 'DataPermModuleSelect',
-  props: {
-    value: {},
-    placeholder: {
-      default: '璇烽�夋嫨鏉冮檺妯″潡'
-    },
-    inline: {
-      default: true
-    },
-    disabled: {},
-    clearable: {
-      default: false
-    }
-  },
-  data () {
-    return {
-      modules: []
-    }
-  },
-  created () {
-    fetchModules()
-      .cache()
-      .then(data => {
-        this.modules = data
-      })
-  }
-}
-</script>
-<style lang="scss" scoped>
-  .select__block {
-    display: block;
-  }
-</style>
diff --git a/platform/src/components/system/datapermission/DataPermTypeSelect.vue b/platform/src/components/system/datapermission/DataPermTypeSelect.vue
deleted file mode 100644
index 379bde0..0000000
--- a/platform/src/components/system/datapermission/DataPermTypeSelect.vue
+++ /dev/null
@@ -1,67 +0,0 @@
-<template>
-  <el-select
-    class="data-perm-type-select"
-    :class="{select__block: !inline}"
-    :value="value"
-    :placeholder="placeholder"
-    :clearable="clearable"
-    :disabled="disabled"
-    @change="$emit('change', $event)"
-    @input="$emit('input', $event)"
-  >
-    <el-option v-for="type in filterTypes" :key="type.code" :value="type.code" :label="type.remark"/>
-  </el-select>
-</template>
-
-<script>
-import { fetchTypes } from '@/api/system/dataPermission'
-export default {
-  name: 'DataPermTypeSelect',
-  props: {
-    value: {},
-    // 妯″潡鍚嶇О
-    module: {},
-    placeholder: {
-      default: '璇烽�夋嫨鏉冮檺绫诲瀷'
-    },
-    inline: {
-      default: true
-    },
-    disabled: {},
-    clearable: {
-      default: false
-    }
-  },
-  data () {
-    return {
-      types: []
-    }
-  },
-  computed: {
-    filterTypes () {
-      if (this.module == null || this.module === '') {
-        return []
-      }
-      const types = []
-      for (const type of this.types) {
-        if (type.modules.length === 0 || type.modules.indexOf(this.module) !== -1) {
-          types.push(type)
-        }
-      }
-      return types
-    }
-  },
-  created () {
-    fetchTypes()
-      .cache()
-      .then(data => {
-        this.types = data
-      })
-  }
-}
-</script>
-<style lang="scss" scoped>
-  .select__block {
-    display: block;
-  }
-</style>
diff --git a/platform/src/components/system/datapermission/OperaDataPermissionWindow.vue b/platform/src/components/system/datapermission/OperaDataPermissionWindow.vue
deleted file mode 100644
index 67769ac..0000000
--- a/platform/src/components/system/datapermission/OperaDataPermissionWindow.vue
+++ /dev/null
@@ -1,121 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="涓氬姟妯″潡" prop="businessCode" required>
-        <DataPermModuleSelect v-model="form.businessCode" :disabled="form.id != null" :inline="false" @change="handleBusinessChange"/>
-      </el-form-item>
-      <el-form-item label="瑙掕壊" prop="roleId" required>
-        <RoleSelect v-model="form.roleId" :disabled="form.id != null" :inline="false"/>
-      </el-form-item>
-      <el-form-item label="鏉冮檺绫诲瀷" prop="type" required>
-        <DataPermTypeSelect v-model="form.type" :module="form.businessCode" :inline="false" @change="handleTypeChange"/>
-      </el-form-item>
-      <el-form-item v-show="showCustomData" label="鑷畾涔夋暟鎹�" prop="customData">
-        <CustomSelect v-if="visible" v-model="customData" :business-code="form.businessCode" @change="handleCustomDataChange"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input type="textarea" v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim :rows="3" maxlength="500"/>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import RoleSelect from '@/components/system/role/RoleSelect'
-import DataPermModuleSelect from './DataPermModuleSelect'
-import DataPermTypeSelect from './DataPermTypeSelect'
-import CustomSelect from './CustomSelect'
-export default {
-  name: 'OperaDataPermissionWindow',
-  extends: BaseOpera,
-  components: { CustomSelect, RoleSelect, DataPermTypeSelect, DataPermModuleSelect, GlobalWindow },
-  data () {
-    return {
-      // 鑷畾涔夋暟鎹�
-      customData: [],
-      // 灞曠ず鑷畾涔夋暟鎹爣璇�
-      showCustomData: false,
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        businessCode: '',
-        roleId: '',
-        type: '',
-        remark: '',
-        customData: ''
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        businessCode: [
-          { required: true, message: '璇烽�夋嫨涓氬姟妯″潡' }
-        ],
-        roleId: [
-          { required: true, message: '璇烽�夋嫨瑙掕壊' }
-        ],
-        type: [
-          { required: true, message: '璇烽�夋嫨鏉冮檺绫诲瀷' }
-        ]
-      }
-    }
-  },
-  methods: {
-    /**
-     * @title 绐楀彛鏍囬
-     * @target 缂栬緫鐨勫璞�
-     */
-    open (title, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.customData = []
-          this.showCustomData = false
-          this.$refs.form.resetFields()
-          this.form[this.configData['field.id']] = null
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-        this.customData = this.form.customData == null || this.form.customData === '' ? [] : this.form.customData.split(',')
-        this.handleTypeChange()
-      })
-    },
-    // 涓氬姟妯″潡鍒囨崲
-    handleBusinessChange () {
-      this.form.customData = ''
-      this.customData = []
-      this.handleTypeChange()
-    },
-    // 鏉冮檺绫诲瀷鍒囨崲
-    handleTypeChange () {
-      if ((this.form.type === 11 || this.form.type === 21) && this.form.businessCode != null && this.form.businessCode !== '') {
-        this.showCustomData = true
-      } else {
-        this.showCustomData = false
-      }
-    },
-    // 鑷畾涔夋暟鎹彉鍖�
-    handleCustomDataChange (values) {
-      this.form.customData = values.join(',')
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/dataPermission',
-      'field.id': 'id'
-    })
-  }
-}
-</script>
diff --git a/platform/src/components/system/department/DepartmentUserWindow.vue b/platform/src/components/system/department/DepartmentUserWindow.vue
deleted file mode 100644
index 516b96a..0000000
--- a/platform/src/components/system/department/DepartmentUserWindow.vue
+++ /dev/null
@@ -1,191 +0,0 @@
-<template>
-  <GlobalWindow
-    class="position-user-window"
-    width="80%"
-    :title="departmentName + '浜哄憳鍒楄〃'"
-    :visible.sync="visible"
-    :with-footer="false"
-  >
-    <TableLayout :with-breadcrumb="false">
-      <!-- 鎼滅储琛ㄥ崟 -->
-      <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline>
-        <el-form-item label="鐢ㄦ埛鍚�" prop="username">
-          <el-input v-model="searchForm.username" placeholder="璇疯緭鍏ョ敤鎴峰悕" v-trim @keypress.enter.native="search"/>
-        </el-form-item>
-        <el-form-item label="濮撳悕" prop="realname">
-          <el-input v-model="searchForm.realname" placeholder="璇疯緭鍏ュ鍚�" v-trim @keypress.enter.native="search"/>
-        </el-form-item>
-        <el-form-item label="鎵嬫満鍙风爜" prop="mobile">
-          <el-input v-model="searchForm.mobile" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" v-trim @keypress.enter.native="search"/>
-        </el-form-item>
-        <section>
-          <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button>
-          <el-button @click="reset">閲嶇疆</el-button>
-        </section>
-      </el-form>
-      <div slot="space" class="toolbar">
-        <el-switch v-model="onlyCurrentDept" @change="search" :disabled="isWorking.search"/>
-        <label>浠呮煡鐪嬪綋鍓嶉儴闂ㄤ汉鍛�</label>
-      </div>
-      <template v-slot:table-wrap>
-        <el-table
-          v-loading="isWorking.search"
-          :data="tableData.list"
-          stripe
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column prop="avatar" label="澶村儚" width="80px" class-name="table-column-avatar" fixed="left">
-            <template slot-scope="{row}">
-              <img :src="row.avatar == null ? '/static/avatar/man.png' : row.avatar">
-            </template>
-          </el-table-column>
-          <el-table-column prop="realname" label="濮撳悕" min-width="100px" fixed="left"></el-table-column>
-          <el-table-column prop="username" label="鐢ㄦ埛鍚�" min-width="100px"></el-table-column>
-          <el-table-column prop="empNo" label="宸ュ彿" min-width="80px"></el-table-column>
-          <el-table-column prop="department" label="閮ㄩ棬" min-width="120px">
-            <template slot-scope="{row}">{{row.department == null ? '' : row.department.name}}</template>
-          </el-table-column>
-                    <el-table-column prop="position" label="宀椾綅" min-width="120px" class-name="table-column-strings">
-            <template slot-scope="{row}">
-              <ul>
-                <li v-for="position in row.positions" :key="position.id">{{position.name}}</li>
-              </ul>
-            </template>
-          </el-table-column>
-          <el-table-column prop="sex" label="鎬у埆" min-width="80px">
-            <template slot-scope="{row}">
-              {{row.sex | sex}}
-            </template>
-          </el-table-column>
-          <el-table-column prop="mobile" label="鎵嬫満鍙风爜" min-width="100px"></el-table-column>
-          <el-table-column prop="email" label="閭" min-width="180px"></el-table-column>
-          <el-table-column prop="birthday" label="鐢熸棩" min-width="100px"></el-table-column>
-          <el-table-column prop="birthday" label="瑙掕壊" min-width="160px" class-name="table-column-role">
-            <template slot-scope="{row}">
-              <ul>
-                <li v-for="role in row.roles" :key="role.id">{{role.name}}</li>
-              </ul>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          @size-change="handleSizeChange"
-          @current-change="handlePageChange"
-          :pagination="tableData.pagination"
-        ></pagination>
-      </template>
-    </TableLayout>
-  </GlobalWindow>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import Pagination from '@/components/common/Pagination'
-import { fetchUserList } from '@/api/system/department'
-export default {
-  name: 'DepartmentUserWindow',
-  extends: BaseTable,
-  components: { Pagination, GlobalWindow, TableLayout },
-  data () {
-    return {
-      departmentId: null,
-      departmentName: '',
-      visible: false,
-      // 浠呮煡鐪嬪綋鍓嶉儴闂�
-      onlyCurrentDept: true,
-      // 鎼滅储琛ㄥ崟
-      searchForm: {
-        departmentId: null,
-        username: '',
-        realname: '',
-        mobile: ''
-      }
-    }
-  },
-  methods: {
-    // 鎵撳紑鏌ョ湅浜哄憳绐楀彛
-    open (departmentId, departmentName) {
-      this.departmentId = departmentId
-      this.departmentName = departmentName
-      this.searchForm.departmentId = departmentId
-      this.visible = true
-      this.search()
-    },
-    // 澶勭悊鍒嗛〉
-    handlePageChange (pageIndex) {
-      // 浠呮煡鐪嬪綋鍓嶉儴闂ㄥ鐞�
-      this.searchForm.strictDeptId = null
-      this.searchForm.rootDeptId = this.searchForm.departmentId
-      if (this.onlyCurrentDept) {
-        this.searchForm.strictDeptId = this.searchForm.departmentId
-        this.searchForm.rootDeptId = null
-      }
-      this.tableData.pagination.pageIndex = pageIndex
-      this.isWorking.search = true
-      fetchUserList({
-        page: pageIndex,
-        capacity: this.tableData.pagination.pageSize,
-        model: this.searchForm
-      })
-        .then(data => {
-          this.tableData.list = data.records
-          this.tableData.pagination.total = data.total
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.search = false
-        })
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.position-user-window {
-  /deep/ .table-search-form {
-    padding: 0;
-  }
-  /deep/ .window__body {
-    background: #f7f7f7;
-    .table-content {
-      padding: 0;
-      .table-wrap {
-        padding: 0;
-      }
-    }
-  }
-  .toolbar {
-    margin-top: 10px;
-    padding: 6px 12px;
-    background: #fff;
-    font-size: 13px;
-    label {
-      margin-left: 8px;
-      vertical-align: middle;
-      color: #999;
-    }
-  }
-  // 鍒楄〃澶村儚澶勭悊
-  .table-column-avatar {
-    img {
-      width: 48px;
-    }
-  }
-  // 鍒楄〃瑙掕壊澶勭悊
-  .table-column-role {
-    ul {
-      li {
-        display: inline-block;
-        background: #eee;
-        border-radius: 3px;
-        padding: 0 3px;
-        margin-right: 3px;
-      }
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/system/department/OperaDepartmentWindow.vue b/platform/src/components/system/department/OperaDepartmentWindow.vue
deleted file mode 100644
index abc3f24..0000000
--- a/platform/src/components/system/department/OperaDepartmentWindow.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="涓婄骇閮ㄩ棬" prop="parentId">
-        <DepartmentSelect v-if="visible" ref="departmentSelect" placeholder="璇烽�夋嫨涓婄骇閮ㄩ棬" v-model="form.parentId" :exclude-id="excludeDeptId" :inline="false"/>
-      </el-form-item>
-      <el-form-item label="閮ㄩ棬缂栫爜" prop="code" required>
-        <el-input v-model="form.code" placeholder="璇疯緭鍏ラ儴闂ㄧ紪鐮�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="閮ㄩ棬鍚嶇О" prop="name" required>
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
-        <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" v-trim maxlength="11"/>
-      </el-form-item>
-      <el-form-item label="閮ㄩ棬閭" prop="email">
-        <el-input v-model="form.email" placeholder="璇疯緭鍏ラ儴闂ㄩ偖绠�" v-trim maxlength="200"/>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import DepartmentSelect from '@/components/common/DepartmentSelect'
-import { checkMobile, checkEmail } from '@/utils/form'
-export default {
-  name: 'OperaDepartmentWindow',
-  extends: BaseOpera,
-  components: { DepartmentSelect, GlobalWindow },
-  data () {
-    return {
-      // 闇�鎺掗櫎閫夋嫨鐨勯儴闂↖D
-      excludeDeptId: null,
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        parentId: null,
-        code: '',
-        name: '',
-        phone: '',
-        email: ''
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        code: [
-          { required: true, message: '璇疯緭鍏ラ儴闂ㄧ紪鐮�' }
-        ],
-        name: [
-          { required: true, message: '璇疯緭鍏ラ儴闂ㄥ悕绉�' }
-        ],
-        phone: [
-          { validator: checkMobile }
-        ],
-        email: [
-          { validator: checkEmail }
-        ]
-      }
-    }
-  },
-  methods: {
-    /**
-     * @title 绐楀彛鏍囬
-     * @target 缂栬緫鐨勯儴闂ㄥ璞�
-     * @parent 鏂板缓鏃剁殑涓婄骇閮ㄩ棬瀵硅薄
-     * @departmentList 閮ㄩ棬鍒楄〃
-     */
-    open (title, target, parent) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.excludeDeptId = null
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form.id = null
-          this.form.parentId = parent == null ? null : parent.id
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        this.excludeDeptId = target.id
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-      })
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/department'
-    })
-  }
-}
-</script>
diff --git a/platform/src/components/system/dict/DictDataManagerWindow.vue b/platform/src/components/system/dict/DictDataManagerWindow.vue
deleted file mode 100644
index bbad831..0000000
--- a/platform/src/components/system/dict/DictDataManagerWindow.vue
+++ /dev/null
@@ -1,106 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="dictName + '鏁版嵁绠$悊'"
-    width="78%"
-    :visible.sync="visible"
-    :with-footer="false"
-  >
-    <TableLayout :with-breadcrumb="false">
-      <!-- 琛ㄦ牸鍜屽垎椤� -->
-      <template v-slot:table-wrap>
-        <ul class="toolbar">
-          <li><el-button type="primary" @click="$refs.operaDictDataWindow.open('鏂板缓瀛楀吀鏁版嵁', searchForm.dictId)" icon="el-icon-plus">鏂板缓</el-button></li>
-          <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete">鍒犻櫎</el-button></li>
-        </ul>
-        <el-table
-          v-loading="isWorking.search"
-          :data="tableData.list"
-          stripe
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="55"></el-table-column>
-          <el-table-column prop="label" label="鏁版嵁鏍囩" min-width="100px"></el-table-column>
-          <el-table-column prop="code" label="鏁版嵁鍊�" min-width="100px"></el-table-column>
-          <el-table-column prop="disabled" label="鐘舵��" min-width="100px">
-            <template slot-scope="{row}">{{row.disabled | disabledText}}</template>
-          </el-table-column>
-          <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-            <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-          </el-table-column>
-          <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
-            <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-          </el-table-column>
-          <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
-          <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
-          <el-table-column
-            label="鎿嶄綔"
-            min-width="120"
-            fixed="right"
-          >
-            <template slot-scope="{row}">
-              <el-button type="text" @click="$refs.operaDictDataWindow.open('缂栬緫瀛楀吀鏁版嵁', dictId, row)" icon="el-icon-edit">缂栬緫</el-button>
-              <el-button type="text" @click="deleteById(row)" icon="el-icon-delete">鍒犻櫎</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          @size-change="handleSizeChange"
-          @current-change="handlePageChange"
-          :pagination="tableData.pagination"
-        ></pagination>
-      </template>
-      <!-- 鏂板缓/淇敼 -->
-      <OperaDictDataWindow ref="operaDictDataWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-    </TableLayout>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import Pagination from '@/components/common/Pagination'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import TableLayout from '@/layouts/TableLayout'
-import OperaDictDataWindow from './OperaDictDataWindow'
-export default {
-  name: 'DictDataManagerWindow',
-  extends: BaseTable,
-  components: { OperaDictDataWindow, TableLayout, GlobalWindow, Pagination },
-  data () {
-    return {
-      visible: false,
-      searchForm: {
-        // 瀛楀吀ID
-        dictId: null
-      },
-      // 瀛楀吀鍚嶇О
-      dictName: ''
-    }
-  },
-  methods: {
-    // 鎵撳紑鏁版嵁绠$悊
-    open (dictId, dictName) {
-      this.searchForm.dictId = dictId
-      this.dictName = dictName
-      this.visible = true
-      this.search()
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/dictData',
-      'field.main': 'label'
-    })
-  }
-}
-</script>
-
-<style scoped lang="scss">
-/deep/ .window__body {
-  .table-content {
-    padding: 0;
-    .table-wrap {
-      padding-top: 0;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/system/dict/OperaDictDataWindow.vue b/platform/src/components/system/dict/OperaDictDataWindow.vue
deleted file mode 100644
index 2c3278e..0000000
--- a/platform/src/components/system/dict/OperaDictDataWindow.vue
+++ /dev/null
@@ -1,94 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking.create"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鏁版嵁鏍囩" prop="label" required>
-        <el-input v-model="form.label" placeholder="璇疯緭鍏ユ暟鎹爣绛�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="鏁版嵁鍊�" prop="code" required>
-        <el-input v-model="form.code" placeholder="璇疯緭鍏ユ暟鎹��" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="disabled" required class="form-item-status">
-        <el-switch v-model="form.disabled" :active-value="false" :inactive-value="true"/>
-        <span class="status-text">{{form.disabled | disabledText}}</span>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-export default {
-  name: 'OperaDictDataWindow',
-  extends: BaseOpera,
-  components: { GlobalWindow },
-  data () {
-    return {
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        dictId: null,
-        code: '',
-        label: '',
-        disabled: false
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        label: [
-          { required: true, message: '璇疯緭鍏ユ暟鎹爣绛�' }
-        ],
-        code: [
-          { required: true, message: '璇疯緭鍏ユ暟鎹��' }
-        ]
-      }
-    }
-  },
-  methods: {
-    /**
-     * @title 绐楀彛鏍囬
-     * @dict 鎵�灞炲瓧鍏窱D
-     * @target 缂栬緫鐨勫瓧鍏告暟鎹璞�
-     */
-    open (title, dictId, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form.id = null
-          this.form.dictId = dictId
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-      })
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/dictData'
-    })
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.form-item-status {
-  .status-text {
-    color: #999;
-    margin-left: 6px;
-    font-size: 13px;
-    vertical-align: middle;
-  }
-}
-</style>
diff --git a/platform/src/components/system/dict/OperaDictWindow.vue b/platform/src/components/system/dict/OperaDictWindow.vue
deleted file mode 100644
index 59e02d4..0000000
--- a/platform/src/components/system/dict/OperaDictWindow.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="瀛楀吀缂栫爜" prop="code" required>
-        <el-input v-model="form.code" placeholder="璇疯緭鍏ュ瓧鍏哥紪鐮�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="瀛楀吀鍚嶇О" prop="name" required>
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�" :rows="3" v-trim maxlength="500"/>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-export default {
-  name: 'OperaDictWindow',
-  extends: BaseOpera,
-  components: { GlobalWindow },
-  data () {
-    return {
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        code: '',
-        name: '',
-        remark: ''
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        code: [
-          { required: true, message: '璇疯緭鍏ュ瓧鍏哥紪鐮�' }
-        ],
-        name: [
-          { required: true, message: '璇疯緭鍏ュ瓧鍏稿悕绉�' }
-        ]
-      }
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/dict'
-    })
-  }
-}
-</script>
diff --git a/platform/src/components/system/menu/OperaMenuWindow.vue b/platform/src/components/system/menu/OperaMenuWindow.vue
deleted file mode 100644
index ce5645a..0000000
--- a/platform/src/components/system/menu/OperaMenuWindow.vue
+++ /dev/null
@@ -1,164 +0,0 @@
-<template>
-  <GlobalWindow
-    class="handle-table-dialog"
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <p class="tip" v-if="form.parent != null && form.id == null">涓� <em>{{parentName}}</em> 鏂板缓瀛愯彍鍗�</p>
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="涓婄骇鑿滃崟" prop="parentId">
-        <MenuSelect v-if="visible" v-model="form.parentId" placeholder="璇烽�夋嫨涓婄骇鑿滃崟" :exclude-id="excludeMenuId" clearable :inline="false"/>
-      </el-form-item>
-      <el-form-item label="鑿滃崟鍚嶇О" prop="name" required>
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ彍鍗曞悕绉�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="璁块棶璺緞" prop="path">
-        <el-input v-model="form.path" placeholder="璇疯緭鍏ヨ闂矾寰�" v-trim maxlength="200"/>
-      </el-form-item>
-      <el-form-item label="鍥炬爣" prop="icon" class="form-item-icon">
-        <el-radio-group v-model="form.icon">
-          <el-radio :label="icon" v-for="icon in icons" :key="icon">
-            <i :class="{[icon]: true}"></i>
-          </el-radio>
-        </el-radio-group>
-      </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input type="textarea" v-model="form.remark" placeholder="璇疯緭鍏ヨ彍鍗曞娉�" v-trim :rows="3" maxlength="500"/>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import MenuSelect from '@/components/common/MenuSelect'
-import icons from '@/utils/icons'
-export default {
-  name: 'OperaMenuWindow',
-  extends: BaseOpera,
-  components: { MenuSelect, GlobalWindow },
-  data () {
-    return {
-      icons,
-      // 涓婄骇鑿滃崟鍚嶇О
-      parentName: '',
-      // 闇�鎺掗櫎閫夋嫨鐨勮彍鍗旾D
-      excludeMenuId: null,
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        parentId: null,
-        name: '',
-        path: '',
-        icon: '',
-        remark: '',
-        type: ''
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        name: [
-          { required: true, message: '璇疯緭鍏ヨ彍鍗曞悕绉�' }
-        ]
-      }
-    }
-  },
-  methods: {
-    /**
-     * @title: 绐楀彛鏍囬
-     * @target: 缂栬緫鐨勮彍鍗曞璞�
-     * @parent: 鏂板缓鏃剁殑涓婄骇鑿滃崟
-     */
-    open (title, target, parent) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓锛宮enu涓虹┖鏃惰〃绀烘柊寤鸿彍鍗�
-      if (target == null) {
-        this.excludeMenuId = null
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form.id = null
-          this.form.type = parent.type
-          this.form.parentId = parent == null ? null : parent.id
-          this.parentName = parent == null ? null : parent.name
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        this.excludeMenuId = target.id
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-      })
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/menu'
-    })
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables";
-$icon-background-color: $primary-color;
-.global-window {
-  .tip {
-    margin-bottom: 12px;
-    em {
-      font-style: normal;
-      color: $primary-color;
-      font-weight: bold;
-    }
-  }
-  // 鍥炬爣
-  /deep/ .form-item-icon {
-    .el-form-item__content {
-      height: 193px;
-      overflow-y: auto;
-    }
-    .el-radio-group {
-      background: $icon-background-color;
-      padding: 4px;
-      .el-radio {
-        margin-right: 0;
-        color: #fff;
-        padding: 6px;
-        &.is-checked {
-          background: $icon-background-color - 30;
-          border-radius: 10px;
-        }
-        .el-radio__input.is-checked + .el-radio__label {
-          color: #fff;
-        }
-      }
-      .el-radio__input {
-        display: none;
-      }
-      .el-radio__label {
-        padding-left: 0;
-        // element-ui鍥炬爣
-        i {
-          font-size: 30px;
-        }
-        // 鑷畾涔夊浘鏍�
-        [class^="eva-icon-"], [class*=" eva-icon-"] {
-          width: 30px;
-          height: 30px;
-          background-size: 25px;
-          vertical-align: bottom;
-        }
-      }
-      .el-radio--small {
-        height: auto;
-        padding: 8px;
-        margin-left: 0;
-      }
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/system/permission/OperaPermissionWindow.vue b/platform/src/components/system/permission/OperaPermissionWindow.vue
deleted file mode 100644
index 12054f2..0000000
--- a/platform/src/components/system/permission/OperaPermissionWindow.vue
+++ /dev/null
@@ -1,96 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鏉冮檺缂栫爜" prop="code" required>
-        <el-input v-model="form.code" placeholder="璇疯緭鍏ユ潈闄愮紪鐮�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="鏉冮檺鍚嶇О" prop="name" required>
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ユ潈闄愬悕绉�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="鏉冮檺澶囨敞" prop="remark">
-        <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ潈闄愬娉�" type="textarea" :rows="3" v-trim maxlength="500"/>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-export default {
-  name: 'OperaPermissionWindow',
-  extends: BaseOpera,
-  components: { GlobalWindow },
-  data () {
-    return {
-      // 鍘熸潈闄愮爜
-      originPermissionCode: '',
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        code: '',
-        name: '',
-        remark: ''
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        code: [
-          { required: true, message: '璇疯緭鍏ユ潈闄愮紪鐮�' }
-        ],
-        name: [
-          { required: true, message: '璇疯緭鍏ユ潈闄愬悕绉�' }
-        ]
-      }
-    }
-  },
-  methods: {
-    open (title, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form[this.configData['field.id']] = null
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        this.originPermissionCode = target.code
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-      })
-    },
-    confirm () {
-      if (this.form.id == null || this.form.id === '') {
-        this.__confirmCreate()
-        return
-      }
-      if (this.originPermissionCode === this.form.code) {
-        this.__confirmEdit()
-        return
-      }
-      // 淇敼浜嗘潈闄愮紪鐮�
-      this.$dialog.confirm('妫�娴嬪埌鎮ㄤ慨鏀逛簡鏉冮檺缂栫爜锛屾潈闄愮紪鐮佷慨鏀瑰悗鍓嶅悗绔潎鍙兘闇�瑕佽皟鏁翠唬鐮侊紝纭淇敼鍚楋紵', '鎻愮ず', {
-        confirmButtonText: '纭淇敼',
-        type: 'warning'
-      })
-        .then(() => {
-          this.__confirmEdit()
-        })
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/permission'
-    })
-  }
-}
-</script>
diff --git a/platform/src/components/system/position/OperaPositionWindow.vue b/platform/src/components/system/position/OperaPositionWindow.vue
deleted file mode 100644
index ed6dd16..0000000
--- a/platform/src/components/system/position/OperaPositionWindow.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="涓婄骇宀椾綅" prop="parentId">
-        <PositionSelect v-if="visible" v-model="form.parentId" placeholder="璇烽�夋嫨涓婄骇宀椾綅" :exclude-id="excludePositionId" clearable :inline="false"/>
-      </el-form-item>
-      <el-form-item label="宀椾綅缂栫爜" prop="code" required>
-        <el-input v-model="form.code" placeholder="璇疯緭鍏ュ矖浣嶇紪鐮�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="宀椾綅鍚嶇О" prop="name" required>
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ュ矖浣嶅悕绉�" v-trim maxlength="50"/>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import PositionSelect from '@/components/common/PositionSelect'
-export default {
-  name: 'OperaPositionWindow',
-  extends: BaseOpera,
-  components: { PositionSelect, GlobalWindow },
-  data () {
-    return {
-      // 闇�鎺掗櫎閫夋嫨鐨勫矖浣岻D
-      excludePositionId: null,
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        parentId: null,
-        code: '',
-        name: ''
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        code: [
-          { required: true, message: '璇疯緭鍏ュ矖浣嶇紪鐮�' }
-        ],
-        name: [
-          { required: true, message: '璇疯緭鍏ュ矖浣嶅悕绉�' }
-        ]
-      }
-    }
-  },
-  methods: {
-    /**
-     * @title 绐楀彛鏍囬
-     * @target 缂栬緫鐨勫矖浣嶅璞�
-     * @parent 鏂板缓鏃剁殑涓婄骇宀椾綅瀵硅薄
-     * @positionList 宀椾綅鍒楄〃
-     */
-    open (title, target, parent) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.excludePositionId = null
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form.id = null
-          this.form.parentId = parent == null ? null : parent.id
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        this.excludePositionId = target.id
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-      })
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/position'
-    })
-  }
-}
-</script>
diff --git a/platform/src/components/system/position/PositionUserWindow.vue b/platform/src/components/system/position/PositionUserWindow.vue
deleted file mode 100644
index d2477db..0000000
--- a/platform/src/components/system/position/PositionUserWindow.vue
+++ /dev/null
@@ -1,152 +0,0 @@
-<template>
-  <GlobalWindow
-    class="position-user-window"
-    width="80%"
-    :title="positionName + '浜哄憳鍒楄〃'"
-    :visible.sync="visible"
-    :with-footer="false"
-  >
-    <TableLayout :with-breadcrumb="false">
-      <!-- 鎼滅储琛ㄥ崟 -->
-      <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline>
-        <el-form-item label="鐢ㄦ埛鍚�" prop="username">
-          <el-input v-model="searchForm.username" v-trim placeholder="璇疯緭鍏ョ敤鎴峰悕" @keypress.enter.native="search"/>
-        </el-form-item>
-        <el-form-item label="濮撳悕" prop="realname">
-          <el-input v-model="searchForm.realname" v-trim placeholder="璇疯緭鍏ュ鍚�" @keypress.enter.native="search"/>
-        </el-form-item>
-        <el-form-item label="鎵嬫満鍙风爜" prop="mobile">
-          <el-input v-model="searchForm.mobile" v-trim placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" @keypress.enter.native="search"/>
-        </el-form-item>
-        <section>
-          <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button>
-          <el-button @click="reset">閲嶇疆</el-button>
-        </section>
-      </el-form>
-      <template v-slot:table-wrap>
-        <el-table
-          v-loading="isWorking.search"
-          :data="tableData.list"
-          stripe
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="55"></el-table-column>
-          <el-table-column prop="avatar" label="澶村儚" width="80px" class-name="table-column-avatar" fixed="left">
-            <template slot-scope="{row}">
-              <img :src="row.avatar == null ? '/static/avatar/man.png' : row.avatar">
-            </template>
-          </el-table-column>
-          <el-table-column prop="realname" label="濮撳悕" min-width="100px" fixed="left"></el-table-column>
-          <el-table-column prop="username" label="鐢ㄦ埛鍚�" min-width="100px"></el-table-column>
-          <el-table-column prop="empNo" label="宸ュ彿" min-width="80px"></el-table-column>
-                    <el-table-column prop="department" label="閮ㄩ棬" min-width="120px">
-            <template slot-scope="{row}">{{row.department == null ? '' : row.department.name}}</template>
-          </el-table-column>
-          <el-table-column prop="position" label="宀椾綅" min-width="120px" class-name="table-column-strings">
-            <template slot-scope="{row}">
-              <ul>
-                <li v-for="position in row.positions" :key="position.id">{{position.name}}</li>
-              </ul>
-            </template>
-          </el-table-column>
-          <el-table-column prop="sex" label="鎬у埆" min-width="80px">
-            <template slot-scope="{row}">
-              {{row.sex | sex}}
-            </template>
-          </el-table-column>
-          <el-table-column prop="mobile" label="鎵嬫満鍙风爜" min-width="100px"></el-table-column>
-          <el-table-column prop="email" label="閭" min-width="180px"></el-table-column>
-          <el-table-column prop="birthday" label="鐢熸棩" min-width="100px"></el-table-column>
-          <el-table-column prop="birthday" label="瑙掕壊" min-width="160px" class-name="table-column-role">
-            <template slot-scope="{row}">
-              <ul>
-                <li v-for="role in row.roles" :key="role.id">{{role.name}}</li>
-              </ul>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          @size-change="handleSizeChange"
-          @current-change="handlePageChange"
-          :pagination="tableData.pagination"
-        ></pagination>
-      </template>
-    </TableLayout>
-  </GlobalWindow>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import Pagination from '@/components/common/Pagination'
-export default {
-  name: 'PositionUserWindow',
-  extends: BaseTable,
-  components: { Pagination, GlobalWindow, TableLayout },
-  data () {
-    return {
-      positionId: null,
-      positionName: '',
-      visible: false,
-      // 鎼滅储琛ㄥ崟
-      searchForm: {
-        positionId: null,
-        username: '',
-        realname: '',
-        mobile: ''
-      }
-    }
-  },
-  methods: {
-    // 鎵撳紑鏌ョ湅浜哄憳绐楀彛
-    open (positionId, positionName) {
-      this.positionId = positionId
-      this.positionName = positionName
-      this.searchForm.positionId = positionId
-      this.visible = true
-      this.search()
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/user'
-    })
-  }
-}
-</script>
-
-<style scoped lang="scss">
-.position-user-window {
-  /deep/ .table-search-form {
-    padding: 0;
-  }
-  /deep/ .window__body {
-    background: #f7f7f7;
-    .table-content {
-      padding: 0;
-      .table-wrap {
-        padding: 0;
-      }
-    }
-  }
-  // 鍒楄〃澶村儚澶勭悊
-  .table-column-avatar {
-    img {
-      width: 48px;
-    }
-  }
-  // 鍒楄〃瑙掕壊澶勭悊
-  .table-column-role {
-    ul {
-      li {
-        display: inline-block;
-        background: #eee;
-        border-radius: 3px;
-        padding: 0 3px;
-        margin-right: 3px;
-      }
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/system/role/MenuConfigWindow.vue b/platform/src/components/system/role/MenuConfigWindow.vue
index 536f92e..aa9ae58 100644
--- a/platform/src/components/system/role/MenuConfigWindow.vue
+++ b/platform/src/components/system/role/MenuConfigWindow.vue
@@ -50,8 +50,12 @@
      * @role 瑙掕壊瀵硅薄
      */
     open (role) {
+<<<<<<< HEAD
       if (this.userInfo.type === 1) {
         fetchTree1({})
+=======
+      fetchMenuList({})
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
         .then(records => {
           this.role = role
           this.menus = records
diff --git a/platform/src/components/system/role/OperaRoleWindow.vue b/platform/src/components/system/role/OperaRoleWindow.vue
deleted file mode 100644
index 03fce75..0000000
--- a/platform/src/components/system/role/OperaRoleWindow.vue
+++ /dev/null
@@ -1,96 +0,0 @@
-<template>
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="瑙掕壊缂栫爜" prop="code" required>
-        <el-input v-model="form.code" placeholder="璇疯緭鍏ヨ鑹茬紪鐮�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="瑙掕壊鍚嶇О" prop="name" required>
-        <el-input v-model="form.name" placeholder="璇疯緭鍏ヨ鑹插悕绉�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="瑙掕壊澶囨敞" prop="remark">
-        <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ヨ鑹插娉�" :rows="3" v-trim maxlength="500"/>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-export default {
-  name: 'OperaRoleWindow',
-  extends: BaseOpera,
-  components: { GlobalWindow },
-  data () {
-    return {
-      // 鍘熻鑹茬爜
-      originRoleCode: '',
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        code: '',
-        name: '',
-        remark: ''
-      },
-      // 楠岃瘉瑙勫垯
-      rules: {
-        code: [
-          { required: true, message: '璇疯緭鍏ヨ鑹茬紪鐮�' }
-        ],
-        name: [
-          { required: true, message: '璇疯緭鍏ヨ鑹插悕绉�' }
-        ]
-      }
-    }
-  },
-  methods: {
-    open (title, target) {
-      this.title = title
-      this.visible = true
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form[this.configData['field.id']] = null
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        this.originRoleCode = target.code
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-      })
-    },
-    confirm () {
-      if (this.form.id == null || this.form.id === '') {
-        this.__confirmCreate()
-        return
-      }
-      if (this.originRoleCode === this.form.code) {
-        this.__confirmEdit()
-        return
-      }
-      // 淇敼浜嗚鑹茬紪鐮�
-      this.$dialog.confirm('妫�娴嬪埌鎮ㄤ慨鏀逛簡瑙掕壊缂栫爜锛岃鑹茬紪鐮佷慨鏀瑰悗鍓嶅悗绔潎鍙兘闇�瑕佽皟鏁翠唬鐮侊紝纭淇敼鍚楋紵', '鎻愮ず', {
-        confirmButtonText: '纭淇敼',
-        type: 'warning'
-      })
-        .then(() => {
-          this.__confirmEdit()
-        })
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/role'
-    })
-  }
-}
-</script>
diff --git a/platform/src/components/system/role/PermissionConfigWindow.vue b/platform/src/components/system/role/PermissionConfigWindow.vue
deleted file mode 100644
index 17476a0..0000000
--- a/platform/src/components/system/role/PermissionConfigWindow.vue
+++ /dev/null
@@ -1,124 +0,0 @@
-<template>
-  <GlobalWindow
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    width="582px"
-    title="閰嶇疆瑙掕壊鏉冮檺"
-    @confirm="confirm"
-  >
-    <p class="tip" v-if="role != null">涓鸿鑹� <em>{{role.name}}</em> 閰嶇疆鏉冮檺</p>
-    <p class="tip-warn"><i class="el-icon-warning"></i>鎻愰啋锛氭潈闄愰厤缃悗闇�閲嶆柊鐧诲綍鍚庣敓鏁�</p>
-    <el-transfer
-      ref="permissionTransfer"
-      v-model="selectedIds"
-      filterable
-      :filter-method="filterPermissions"
-      :titles="['鏈巿鏉冩潈闄�', '宸叉巿鏉冩潈闄�']"
-      :props="{
-        key: 'id',
-        label: 'name'
-      }"
-      :data="permissions">
-    </el-transfer>
-  </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { createRolePermission } from '@/api/system/role'
-import { fetchAll } from '@/api/system/permission'
-export default {
-  name: 'PermissionConfigWindow',
-  components: { GlobalWindow },
-  data () {
-    return {
-      visible: false,
-      isWorking: false,
-      // 瑙掕壊瀵硅薄
-      role: null,
-      // 鏉冮檺鍒楄〃
-      permissions: [],
-      // 宸查�変腑鐨勬潈闄怚D
-      selectedIds: []
-    }
-  },
-  methods: {
-    /**
-     * @role 瑙掕壊瀵硅薄
-     */
-    open (role) {
-      if (this.$refs.permissionTransfer) {
-        this.$refs.permissionTransfer.clearQuery('left')
-        this.$refs.permissionTransfer.clearQuery('right')
-      }
-      fetchAll()
-        .then(records => {
-          this.role = role
-          this.permissions = records
-          // 濡傛灉涓哄浐瀹氳鑹诧紝鍒欏浐瀹氭潈闄愪笉鍙洿鏀�
-          if (this.role.fixed) {
-            for (const perm of this.permissions) {
-              if (perm.fixed) {
-                perm.disabled = true
-              }
-            }
-          }
-          this.selectedIds = role.permissions.map(r => r.id)
-          this.visible = true
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-    },
-    // 纭閫夋嫨鏉冮檺
-    confirm () {
-      this.isWorking = true
-      createRolePermission({
-        roleId: this.role.id,
-        permissionIds: this.selectedIds
-      })
-        .then(() => {
-          this.$tip.apiSuccess('鏉冮檺閰嶇疆鎴愬姛锛岀敤鎴烽噸鏂扮櫥褰曞悗鐢熸晥')
-          this.visible = false
-          this.$emit('success')
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking = false
-        })
-    },
-    // 鎼滅储鏉冮檺
-    filterPermissions (query, item) {
-      const lowerCaseQuery = query.toLowerCase()
-      return item.code.toLowerCase().indexOf(lowerCaseQuery) > -1 || item.name.toLowerCase().indexOf(lowerCaseQuery) > -1
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-.global-window {
-  .tip {
-    em {
-      font-style: normal;
-      color: $primary-color;
-      font-weight: bold;
-    }
-  }
-  .tip-warn {
-    margin: 4px 0 12px 0;
-    font-size: 12px;
-    color: #999;
-    i {
-      color: orange;
-      margin-right: 4px;
-      font-size: 14px;
-      position: relative;
-      top: 1px;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/system/role/RoleSelect.vue b/platform/src/components/system/role/RoleSelect.vue
deleted file mode 100644
index d968a9f..0000000
--- a/platform/src/components/system/role/RoleSelect.vue
+++ /dev/null
@@ -1,51 +0,0 @@
-<template>
-  <el-select
-    class="role-select"
-    :class="{select__block: !inline}"
-    :value="value"
-    :placeholder="placeholder"
-    :clearable="clearable"
-    :disabled="disabled"
-    @change="$emit('change', $event)"
-    @input="$emit('input', $event)"
-  >
-    <el-option v-for="role in roles" :key="role.id" :value="role.id" :label="role.name"/>
-  </el-select>
-</template>
-
-<script>
-import { fetchAll } from '@/api/system/role'
-
-export default {
-  name: 'RoleSelect',
-  props: {
-    value: {},
-    placeholder: {
-      default: '璇烽�夋嫨瑙掕壊'
-    },
-    inline: {
-      default: true
-    },
-    disabled: {},
-    clearable: {
-      default: false
-    }
-  },
-  data () {
-    return {
-      roles: []
-    }
-  },
-  created () {
-    fetchAll()
-      .then(data => {
-        this.roles = data
-      })
-  }
-}
-</script>
-<style lang="scss" scoped>
-  .select__block {
-    display: block;
-  }
-</style>
diff --git a/platform/src/components/system/user/OperaUserWindow.vue b/platform/src/components/system/user/OperaUserWindow.vue
deleted file mode 100644
index a64d417..0000000
--- a/platform/src/components/system/user/OperaUserWindow.vue
+++ /dev/null
@@ -1,158 +0,0 @@
-<template>
-  <!-- 鏂板缓/淇敼 -->
-  <GlobalWindow
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="璐﹀彿" prop="username" required>
-        <el-input v-model="form.username" placeholder="璇疯緭鍏�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="鍚嶇О" prop="realname" required>
-        <el-input v-model="form.realname" placeholder="璇疯緭鍏�" v-trim maxlength="50"/>
-      </el-form-item>
-      <el-form-item label="鑱旂郴鏂瑰紡" prop="mobile">
-        <el-input v-model="form.mobile" placeholder="璇疯緭鍏�" v-trim maxlength="11"/>
-      </el-form-item>
-      <el-form-item label="楠岃瘉鐮�" prop="captcha">
-        <div style="width: 100%; display: flex; align-items: center;">
-          <el-input v-model="form.captcha" maxlength="11" type="number" style="flex: 1;" placeholder="璇疯緭鍏�" v-trim/>
-          <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" @click="send" v-if="num === 0">鍙戦�侀獙璇佺爜</el-button>
-          <el-button type="primary" style="flex-shrink: 0; margin-left: 15px;" v-else>{{num}}s</el-button>
-        </div>
-      </el-form-item>
-      <el-form-item label="鎶勯�佹枃浠堕偖绠�" prop="email">
-        <el-input v-model="form.email" placeholder="璇疯緭鍏�" v-trim />
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import DepartmentSelect from '@/components/common/DepartmentSelect'
-import PositionSelect from '@/components/common/PositionSelect'
-import { checkMobile, checkEmail } from '@/utils/form'
-import { sendSms } from '@/api/business/smsEmail'
-
-export default {
-  name: 'OperaUserWindow',
-  extends: BaseOpera,
-  components: { PositionSelect, DepartmentSelect, GlobalWindow },
-  data () {
-    return {
-      // 琛ㄥ崟鏁版嵁
-      form: {
-        id: null,
-        username: '', // 鐢ㄦ埛鍚�
-        realname: '', // 濮撳悕
-        mobile: '', // 鎵嬫満鍙风爜
-        email: '',
-        captcha: ''
-      },
-      num: 0,
-      timer: null,
-      // 楠岃瘉瑙勫垯
-      rules: {
-        username: [
-          { required: true, message: '璇疯緭鍏ョ敤鎴峰悕' }
-        ],
-        realname: [
-          { required: true, message: '璇疯緭鍏ュ鍚�' }
-        ],
-        mobile: [
-          { required: true, validator: checkMobile }
-        ],
-        email: [
-          { required: true, message: '璇疯緭鍏ラ偖绠�' }
-        ]
-      }
-    }
-  },
-  methods: {
-    send() {
-      if (!this.form.mobile) {
-        this.$message.warning('璇疯緭鍏ユ墜鏈哄彿')
-        return
-      }
-      sendSms({ phone: this.form.mobile })
-        .then(res => {
-          this.num = 60
-          this.setTime()
-        })
-    },
-    setTime() {
-      this.timer = setInterval(() => {
-        this.num -= 1
-        if (this.num === 0) {
-          clearInterval(this.timer)
-          this.num = 0
-        }
-      }, 1000)
-    },
-    /**
-     * @title 绐楀彛鏍囬
-     * @target 缂栬緫鐨勭敤鎴峰璞�
-     */
-    open (title, target) {
-      this.title = title
-      this.visible = true
-      clearInterval(this.timer)
-      this.num = 0
-      // 鏂板缓
-      if (target == null) {
-        this.$nextTick(() => {
-          this.$refs.form.resetFields()
-          this.form.id = null
-          this.form.departmentId = null
-          this.form.positionIds = []
-        })
-        return
-      }
-      // 缂栬緫
-      this.$nextTick(() => {
-        for (const key in this.form) {
-          this.form[key] = target[key]
-        }
-        this.form.departmentId = target.department == null ? null : target.department.id
-        this.form.positionIds = target.positions == null ? [] : target.positions.map(p => p.id)
-      })
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/user'
-    })
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.global-window {
-  /deep/ .el-date-editor {
-    width: 100%;
-  }
-  // 琛ㄥ崟澶村儚澶勭悊
-  /deep/ .form-item-avatar {
-    .el-radio.is-bordered {
-      height: auto;
-      padding: 6px;
-      margin: 0 10px 0 0;
-      .el-radio__input {
-        display: none;
-      }
-      .el-radio__label {
-        padding: 0;
-        width: 48px;
-        display: block;
-        img {
-          width: 100%;
-        }
-      }
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/system/user/ResetPwdWindow.vue b/platform/src/components/system/user/ResetPwdWindow.vue
deleted file mode 100644
index 287ce32..0000000
--- a/platform/src/components/system/user/ResetPwdWindow.vue
+++ /dev/null
@@ -1,91 +0,0 @@
-<template>
-  <GlobalWindow
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    width="576px"
-    title="閲嶇疆瀵嗙爜"
-    @confirm="confirm"
-  >
-    <p class="tip" v-if="user != null">涓虹敤鎴� <em>{{user.realname}}</em> 閲嶇疆瀵嗙爜</p>
-    <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鏂板瘑鐮�" prop="password" required>
-        <el-input v-model="form.password" type="password" placeholder="璇疯緭鍏ユ柊瀵嗙爜" maxlength="30" show-password></el-input>
-      </el-form-item>
-    </el-form>
-  </GlobalWindow>
-</template>
-
-<script>
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { resetPwd } from '@/api/system/user'
-export default {
-  name: 'ResetPwdWindow',
-  components: { GlobalWindow },
-  data () {
-    return {
-      isWorking: false,
-      visible: false,
-      user: null,
-      form: {
-        password: ''
-      },
-      rules: {
-        password: [
-          { required: true, message: '璇疯緭鍏ュ瘑鐮�' }
-        ]
-      }
-    }
-  },
-  methods: {
-    open (user) {
-      this.user = user
-      this.visible = true
-      this.$nextTick(() => {
-        this.$refs.form.resetFields()
-      })
-    },
-    // 纭閲嶇疆瀵嗙爜
-    confirm () {
-      if (this.isWorking) {
-        return
-      }
-      this.$refs.form.validate((valid) => {
-        if (!valid) {
-          return
-        }
-        this.isWorking = true
-        resetPwd({
-          id: this.user.id,
-          password: this.form.password
-        })
-          .then(() => {
-            this.$tip.apiSuccess('瀵嗙爜閲嶇疆鎴愬姛')
-            this.visible = false
-            this.$emit('success')
-          })
-          .catch(e => {
-            this.$tip.apiFailed(e)
-          })
-          .finally(() => {
-            this.isWorking = false
-          })
-      })
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-// 瑙掕壊閰嶇疆
-.global-window {
-  .tip {
-    margin-bottom: 12px;
-    em {
-      font-style: normal;
-      color: $primary-color;
-      font-weight: bold;
-    }
-  }
-}
-</style>
diff --git a/platform/src/components/system/user/RoleConfigWindow.vue b/platform/src/components/system/user/RoleConfigWindow.vue
deleted file mode 100644
index 5b029f7..0000000
--- a/platform/src/components/system/user/RoleConfigWindow.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-<template>
-  <GlobalWindow
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    width="582px"
-    title="閰嶇疆鐢ㄦ埛瑙掕壊"
-    @confirm="confirm"
-  >
-    <p class="tip" v-if="user != null">涓虹敤鎴� <em>{{user.realname}}</em> 閰嶇疆瑙掕壊</p>
-    <p class="tip-warn"><i class="el-icon-warning"></i>鎻愰啋锛氳鑹查厤缃悗闇�閲嶆柊鐧诲綍鍚庣敓鏁�</p>
-    <el-transfer
-      v-model="selectedIds"
-      :titles="['鏈巿鏉冭鑹�', '宸叉巿鏉冭鑹�']"
-      :props="{
-        key: 'id',
-        label: 'name'
-      }"
-      :data="roles">
-    </el-transfer>
-  </GlobalWindow>
-</template>
-
-<script>
-import BasePage from '@/components/base/BasePage'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { createUserRole } from '@/api/system/user'
-import { fetchAll as fetchAllRoles } from '@/api/system/role'
-export default {
-  name: 'RoleConfigWindow',
-  extends: BasePage,
-  components: { GlobalWindow },
-  data () {
-    return {
-      visible: false,
-      isWorking: false,
-      // 鐢ㄦ埛
-      user: null,
-      // 瑙掕壊鍒楄〃
-      roles: null,
-      // 宸查�変腑鐨勮鑹睮D
-      selectedIds: []
-    }
-  },
-  methods: {
-    open (user) {
-      fetchAllRoles()
-        .then(records => {
-          this.roles = records
-          this.user = user
-          // 濡傛灉涓哄浐瀹氱敤鎴凤紝鍒欏浐瀹氳鑹蹭笉鍙洿鏀�
-          if (this.user.fixed) {
-            for (const role of this.roles) {
-              if (role.fixed) {
-                role.disabled = true
-              }
-            }
-          }
-          // 濡傛灉褰撳墠鐢ㄦ埛涓洪潪瓒呯骇绠$悊鍛樼敤鎴凤紝鍒欎笉鍏佽鎺堟潈瓒呯骇绠$悊鍛樿鑹�
-          if (!this.isAdmin) {
-            for (const role of this.roles) {
-              if (role.code === this.adminCode) {
-                role.disabled = true
-              }
-            }
-          }
-          this.selectedIds = this.user.roles.map(r => r.id)
-          this.visible = true
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-    },
-    // 纭閫夋嫨瑙掕壊
-    confirm () {
-      if (this.isWorking) {
-        return
-      }
-      this.isWorking = true
-      createUserRole({
-        userId: this.user.id,
-        roleIds: this.selectedIds
-      })
-        .then(() => {
-          this.$tip.apiSuccess('瑙掕壊閰嶇疆鎴愬姛锛岀敤鎴烽噸鏂扮櫥褰曞悗鐢熸晥')
-          this.visible = false
-          this.$emit('success')
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking = false
-        })
-    },
-    // 鍏抽棴
-    close () {
-      this.$emit('update:visible', false)
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-// 瑙掕壊閰嶇疆
-.global-window {
-  .tip {
-    em {
-      font-style: normal;
-      color: $primary-color;
-      font-weight: bold;
-    }
-  }
-  .tip-warn {
-    margin: 4px 0 12px 0;
-    font-size: 12px;
-    color: #999;
-    i {
-      color: orange;
-      margin-right: 4px;
-      font-size: 14px;
-      position: relative;
-      top: 1px;
-    }
-  }
-}
-</style>
diff --git a/platform/src/directives/index.js b/platform/src/directives/index.js
deleted file mode 100644
index e3d7429..0000000
--- a/platform/src/directives/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import vPermissions from './v-permissions'
-import vRoles from './v-roles'
-import vTrim from './v-trim'
-export default {
-  install (Vue) {
-    // 瑙掕壊鎺у埗鎸囦护
-    Vue.directive('roles', vRoles)
-    // 鏉冮檺鎺у埗鎸囦护
-    Vue.directive('permissions', vPermissions)
-    // 鑷姩鍘荤┖鎸囦护
-    Vue.directive('trim', vTrim)
-  }
-}
diff --git a/platform/src/directives/v-permissions.js b/platform/src/directives/v-permissions.js
deleted file mode 100644
index c96efda..0000000
--- a/platform/src/directives/v-permissions.js
+++ /dev/null
@@ -1,22 +0,0 @@
-export default {
-  inserted: function (el, binding, vnode) {
-    // 鑾峰彇鐢ㄦ埛淇℃伅
-    const userInfo = vnode.context.$store.state.userInfo
-    if (userInfo == null) {
-      el.parentNode && el.parentNode.removeChild(el)
-      return
-    }
-    // 鑾峰彇閰嶇疆鏉冮檺
-    const configPermissions = binding.value
-    if (configPermissions == null) {
-      return
-    }
-    if (!(configPermissions instanceof Array)) {
-      throw new Error('v-permissions鐨勫�煎繀椤讳负涓�涓暟缁�')
-    }
-    // 楠岃瘉鏉冮檺
-    if (configPermissions.findIndex(code => userInfo.permissions.findIndex(p => p === code) > -1) === -1) {
-      el.parentNode && el.parentNode.removeChild(el)
-    }
-  }
-}
diff --git a/platform/src/directives/v-roles.js b/platform/src/directives/v-roles.js
deleted file mode 100644
index a678173..0000000
--- a/platform/src/directives/v-roles.js
+++ /dev/null
@@ -1,22 +0,0 @@
-export default {
-  inserted: function (el, binding, vnode) {
-    // 鑾峰彇鐢ㄦ埛淇℃伅
-    const userInfo = vnode.context.$store.state.userInfo
-    if (userInfo == null) {
-      el.parentNode && el.parentNode.removeChild(el)
-      return
-    }
-    // 鑾峰彇閰嶇疆瑙掕壊
-    const configRoles = binding.value
-    if (configRoles == null) {
-      return
-    }
-    if (!(configRoles instanceof Array)) {
-      throw new Error('v-roles鐨勫�煎繀椤讳负涓�涓暟缁�')
-    }
-    // 楠岃瘉鏉冮檺
-    if (configRoles.findIndex(code => userInfo.roles.findIndex(r => r === code) > -1) === -1) {
-      el.parentNode && el.parentNode.removeChild(el)
-    }
-  }
-}
diff --git a/platform/src/directives/v-trim.js b/platform/src/directives/v-trim.js
deleted file mode 100644
index 4b35d06..0000000
--- a/platform/src/directives/v-trim.js
+++ /dev/null
@@ -1,31 +0,0 @@
-export default {
-  inserted: function (el) {
-    let input = el
-    let classes = input.getAttribute('class') || ''
-    if (classes != null) {
-      classes = classes.split(' ')
-    }
-    // 杈撳叆妗嗭細<el-input/>
-    if (classes.indexOf('el-input') > -1) {
-      input = input.querySelector('input')
-    }
-    // 澶氳杈撳叆妗嗭細<el-input type="textarea"/>
-    if (classes.indexOf('el-textarea') > -1) {
-      input = input.querySelector('textarea')
-    }
-    // 澶卞幓鐒︾偣鏃跺幓鎺変袱渚х┖鏍�
-    input.addEventListener('blur', (e) => {
-      e.target.value = e.target.value.trim()
-      input.dispatchEvent(new Event('input'))
-    })
-    // 鍥炶溅鏃跺幓鎺変袱渚х┖鏍硷紙浠呰緭鍏ユ锛�
-    if (classes.indexOf('el-input') > -1) {
-      input.addEventListener('keydown', (e) => {
-        if (e.key === 'Enter') {
-          e.target.value = e.target.value.trim()
-          input.dispatchEvent(new Event('input'))
-        }
-      })
-    }
-  }
-}
diff --git a/platform/src/filters/index.js b/platform/src/filters/index.js
deleted file mode 100644
index e854f1e..0000000
--- a/platform/src/filters/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-export default {
-  install (Vue) {
-    // 鎬у埆
-    Vue.filter('sex', (value) => {
-      if (value === '1') {
-        return '鐢�'
-      }
-      if (value === '0') {
-        return '濂�'
-      }
-      return '鏈煡'
-    })
-    // 鍚敤绂佺敤
-    Vue.filter('disabledText', (value) => {
-      if (value) {
-        return '鍋滅敤'
-      }
-      return '鍚敤'
-    })
-  }
-}
diff --git a/platform/src/layouts/AppLayout.vue b/platform/src/layouts/AppLayout.vue
index f073fc6..96464f1 100644
--- a/platform/src/layouts/AppLayout.vue
+++ b/platform/src/layouts/AppLayout.vue
@@ -13,9 +13,15 @@
         <div style="height:10px;"></div>
         <main>
           <transition name="fade">
+<<<<<<< HEAD
 <!--            <keep-alive>-->
               <router-view></router-view>
 <!--            </keep-alive>-->
+=======
+            <keep-alive>
+              <router-view></router-view>
+            </keep-alive>
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
           </transition>
         </main>
       </el-main>
diff --git a/platform/src/layouts/TableLayout.vue b/platform/src/layouts/TableLayout.vue
deleted file mode 100644
index 2a12773..0000000
--- a/platform/src/layouts/TableLayout.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-<template>
-  <div class="table-layout">
-    <!-- 澶撮儴 -->
-<!--    <div v-if="withBreadcrumb" class="table-header">
-      <el-breadcrumb separator="/">
-        <el-breadcrumb-item v-for="path in paths" :key="path">{{path}}</el-breadcrumb-item>
-      </el-breadcrumb>
-    </div>-->
-    <Profile :roles="roles" :permissions="permissions">
-      <!-- 鎼滅储琛ㄥ崟閮ㄥ垎 -->
-      <div class="table-search-form">
-        <div class="form-wrap">
-          <slot name="search-form"></slot>
-        </div>
-      </div>
-      <slot name="space"></slot>
-      <!-- 鍒楄〃鍜屽垎椤甸儴鍒� -->
-      <div class="table-content">
-        <div class="table-wrap">
-          <slot name="table-wrap"></slot>
-        </div>
-      </div>
-      <slot></slot>
-    </Profile>
-  </div>
-</template>
-
-<script>
-import Profile from '../components/common/Profile'
-export default {
-  name: 'TableLayout',
-  components: { Profile },
-  props: {
-    // 瑙掕壊
-    roles: {
-      type: Array
-    },
-    // 鏉冮檺
-    permissions: {
-      type: Array
-    },
-    // 鏄惁灞曠ず澶撮儴闈㈠寘灞�
-    withBreadcrumb: {
-      type: Boolean,
-      default: true
-    }
-  },
-  computed: {
-    paths () {
-      return this.$route.meta.paths
-    }
-  }
-}
-</script>
-
-<style lang="scss">
-@import "@/assets/style/variables.scss";
-.table-layout {
-  height: 100%;
-  display: flex;
-  flex-direction: column;
-  .not-allow-wrap {
-    padding-top: 0;
-  }
-}
-// 澶撮儴
-.table-header {
-  overflow: hidden;
-  padding: 12px 16px;
-  flex-shrink: 0;
-  // 椤甸潰璺緞
-  .el-breadcrumb {
-    .el-breadcrumb__item {
-      .el-breadcrumb__inner {
-        color: #ABB2BE;
-        font-size: 12px;
-      }
-      &:last-of-type .el-breadcrumb__inner {
-        color: #606263;
-        font-size: 14px;
-      }
-    }
-  }
-}
-// 鎼滅储
-.table-search-form {
-  display: flex;
-  flex-wrap: wrap;
-  padding: 0 16px;
-  .form-wrap {
-    padding: 16px 16px 0 16px;
-    width: 100%;
-    background: #fff;
-    &:empty {
-      padding: 0;
-    }
-  }
-  section {
-    display: inline-block;
-    margin-left: 16px;
-    margin-bottom: 18px;
-  }
-}
-// 鍒楄〃鍜屽垎椤�
-.table-content {
-  margin-top: 10px;
-  padding: 0 16px;
-  .table-wrap {
-    padding: 16px 16px 0 16px;
-    background: #fff;
-    // 宸ュ叿鏍�
-    .toolbar {
-      border-bottom: 1px solid #eee;
-      padding-bottom: 10px;
-      li {
-        display: inline-block;
-        margin-right: 6px;
-      }
-    }
-    // 琛ㄦ牸
-    .el-table {
-      th {
-        .cell {
-          color: #666;
-        }
-      }
-      // 澶嶉�夋鍒�
-      .el-table-column--selection {
-        .cell {
-          text-align: center !important;
-        }
-      }
-      // 澶氬�煎瓧娈�
-      .table-column-strings {
-        ul {
-          li {
-            display: inline-block;
-            background: #eee;
-            border-radius: 3px;
-            padding: 0 3px;
-            margin-right: 3px;
-            margin-bottom: 3px;
-          }
-        }
-      }
-      // 鏍戣瑙夎皟鏁�
-      [class*=el-table__row--level] .el-table__expand-icon {
-        position: relative;
-        left: -6px;
-        margin-right: 0;
-      }
-    }
-    // 鍒嗛〉
-    .table-pagination {
-      padding: 16px 0;
-      text-align: left;
-    }
-  }
-}
-</style>
diff --git a/platform/src/main.js b/platform/src/main.js
deleted file mode 100644
index e3587f1..0000000
--- a/platform/src/main.js
+++ /dev/null
@@ -1,136 +0,0 @@
-import Vue from 'vue'
-import App from './App.vue'
-import router from './router'
-import store from './store'
-import ElementUI from 'element-ui'
-import './assets/style/element-variables.scss'
-import VueClipboard from 'vue-clipboard2'
-import directives from './directives'
-import filters from './filters'
-import plugins from './plugins'
-import { mapState, mapMutations } from 'vuex'
-import { fetchMenuTree } from './api/system/menu'
-
-Vue.config.productionTip = false
-Vue.use(ElementUI, {
-  size: 'small'
-})
-Vue.use(VueClipboard)
-Vue.use(directives)
-Vue.use(filters)
-Vue.use(plugins)
-
-new Vue({
-  data: {
-    loading: false
-  },
-  router,
-  store,
-  computed: {
-    ...mapState(['userInfo', 'homePage'])
-  },
-  watch: {
-    async userInfo () {
-      if (this.userInfo == null) {
-        return
-      }
-      await this.initRoutes()
-    }
-  },
-  methods: {
-    ...mapMutations(['switchCollapseMenu', 'setHomePage']),
-    // 鍒濆鍖栨湰鍦伴厤缃�
-    initLocalConfig () {
-      // 鑿滃崟鐘舵�侀厤缃�
-      const menuStatus = window.localStorage.getItem('MENU_STATUS')
-      if (menuStatus != null) {
-        this.switchCollapseMenu(menuStatus === 'true')
-      }
-    },
-    // 鍒濆鍖栬矾鐢�
-    async initRoutes () {
-      if (this.loading || this.userInfo == null) {
-        return
-      }
-      this.loading = true
-      // 閲嶇疆鑿滃崟
-      this.$store.commit('resetMenus')
-      // 鑾峰彇鑿滃崟
-      const storeMenus = this.$store.state.menuData.list
-      if (storeMenus.length > 0 && this.homePage == null) {
-        this.setHomePage(storeMenus[0])
-      }
-      await fetchMenuTree(this.userInfo.type)
-        .then(menus => {
-          // 娣诲姞鑿滃崟
-          storeMenus.push.apply(storeMenus, menus)
-          // 娣诲姞璺敱
-          this.__addRouters(storeMenus)
-          // 404
-          router.addRoute({
-            path: '*',
-            redirect: '/not-found'
-          })
-          // 棣栭〉
-          router.addRoute({
-            name: 'index',
-            path: '/',
-            redirect: this.homePage.url
-          })
-          // 璺敱鍔犺浇瀹屾垚鍚庯紝濡傛灉璁块棶鐨勬槸/锛岃烦杞嚦鍔ㄦ�佽瘑鍒殑棣栭〉
-          if (this.$route.path === '/') {
-            this.$router.push(this.homePage.url)
-          }
-        })
-        .catch(e => {
-          throw e
-        })
-        .finally(() => {
-          this.loading = false
-        })
-    },
-    // 鏂板缓璺敱
-    __addRouters (routes, parents = []) {
-      if (routes == null || routes.length === 0) {
-        return
-      }
-      const rs = router.getRoutes()
-      for (const route of routes) {
-        const parentsDump = JSON.parse(JSON.stringify(parents))
-        parentsDump.push(route)
-        if (route.url == null || route.url === '') {
-          this.__addRouters(route.children, parentsDump)
-          continue
-        }
-        if (rs.findIndex(r => r.path === route.url) > -1) {
-          this.__addRouters(route.children, parentsDump)
-          continue
-        }
-        if (this.homePage == null) {
-          this.setHomePage(route)
-        }
-        router.addRoute('layout', {
-          path: route.url,
-          name: route.label,
-          meta: {
-            title: route.label,
-            paths: [...parents.map(p => p.label), route.label]
-          },
-          component: () => import('@/views' + route.url)
-        })
-        this.__addRouters(route.children, parentsDump)
-      }
-    }
-  },
-  async created () {
-    if (this.userInfo == null) {
-      return
-    }
-    await this.initRoutes()
-      .catch(() => {})
-  },
-  mounted () {
-    this.initLocalConfig()
-  },
-  render: h => h(App)
-}).$mount('#app')
diff --git a/platform/src/plugins/cache.js b/platform/src/plugins/cache.js
deleted file mode 100644
index 82d800e..0000000
--- a/platform/src/plugins/cache.js
+++ /dev/null
@@ -1,71 +0,0 @@
-const sessionCache = {
-  set (key, value) {
-    if (!sessionStorage) {
-      return
-    }
-    if (key != null && value != null) {
-      sessionStorage.setItem(key, value)
-    }
-  },
-  get (key) {
-    if (!sessionStorage) {
-      return null
-    }
-    if (key == null) {
-      return null
-    }
-    return sessionStorage.getItem(key)
-  },
-  setJSON (key, jsonValue) {
-    if (jsonValue != null) {
-      this.set(key, JSON.stringify(jsonValue))
-    }
-  },
-  getJSON (key) {
-    const value = this.get(key)
-    if (value != null) {
-      return JSON.parse(value)
-    }
-  }
-}
-const localCache = {
-  set (key, value) {
-    if (!localStorage) {
-      return
-    }
-    if (key != null && value != null) {
-      localStorage.setItem(key, value)
-    }
-  },
-  get (key) {
-    if (!localStorage) {
-      return null
-    }
-    if (key == null) {
-      return null
-    }
-    return localStorage.getItem(key)
-  },
-  setJSON (key, jsonValue) {
-    if (jsonValue != null) {
-      this.set(key, JSON.stringify(jsonValue))
-    }
-  },
-  getJSON (key) {
-    const value = this.get(key)
-    if (value != null) {
-      return JSON.parse(value)
-    }
-  }
-}
-
-export default {
-  /**
-   * 浼氳瘽绾х紦瀛�
-   */
-  session: sessionCache,
-  /**
-   * 鏈湴缂撳瓨
-   */
-  local: localCache
-}
diff --git a/platform/src/plugins/consts.js b/platform/src/plugins/consts.js
deleted file mode 100644
index 3b1e3bb..0000000
--- a/platform/src/plugins/consts.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/**
- * 甯搁噺瀹氫箟
- */
-export default {
-}
diff --git a/platform/src/plugins/download.js b/platform/src/plugins/download.js
deleted file mode 100644
index f4c5876..0000000
--- a/platform/src/plugins/download.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import fileDownload from 'js-file-download'
-import message from './message'
-
-export default function (response, decode = true, mime = 'application/octet-stream') {
-  // 褰撲笅杞芥帴鍙f病鏈夋垚鍔熻繑鍥炴祦骞朵笖鎺ュ彛杩斿洖鐨勬槸JSON鏃堕渶瑕佸鍝嶅簲娴佽繘琛岃В鏋愬苟鎻愮ず閿欒銆傦紙澶勭悊涓嬭浇鎺ュ彛鍑虹幇鏈煡寮傚父鐨勬儏鍐碉級
-  if (response.headers['content-type'] === 'application/json') {
-    const blob = new Blob([response.data])
-    const fileReader = new FileReader()
-    fileReader.readAsText(blob, 'utf-8')
-    fileReader.onload = function () {
-      message.apiFailed(JSON.parse(fileReader.result))
-    }
-    return
-  }
-  if (response.headers['content-length'] === '0') {
-    message.error('鏃犳硶涓嬭浇鏂囦欢锛屽彲鑳藉洜涓烘暟鎹鐞嗛敊璇鑷存枃浠跺ぇ灏忎负0B')
-    return
-  }
-  // 涓嬭浇鎺ュ彛鍦ㄥ搷搴斿ごeva-download-filename涓瓨鏀炬枃浠跺悕绉帮紝鎺ュ彛鐨勮繑鍥炵殑鏂囦欢鍚嶇О闇�閲囩敤url encode鐨勬柟寮忚繘琛岀紪鐮�
-  fileDownload(response.data, decode ? decodeURI(response.headers['eva-download-filename']) : response.headers['eva-download-filename'], mime)
-}
diff --git a/platform/src/plugins/index.js b/platform/src/plugins/index.js
deleted file mode 100644
index dfbef8a..0000000
--- a/platform/src/plugins/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import consts from './consts'
-import message from './message'
-import messagebox from './messagebox'
-import cache from './cache'
-import download from './download'
-export default {
-  install (Vue) {
-    // 甯搁噺
-    Vue.prototype.$consts = consts
-    // 鎻愰啋瀵硅薄
-    Vue.prototype.$tip = message
-    // 鎻愮ず妗嗗璞�
-    Vue.prototype.$dialog = messagebox
-    // 缂撳瓨瀵硅薄
-    Vue.prototype.$cache = cache
-    // 涓嬭浇鏂囦欢
-    Vue.prototype.download = download
-  }
-}
diff --git a/platform/src/plugins/message.js b/platform/src/plugins/message.js
deleted file mode 100644
index 45ca1dd..0000000
--- a/platform/src/plugins/message.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Message } from 'element-ui'
-
-export default {
-  ...Message,
-  // 鎺ュ彛璋冪敤鎴愬姛
-  apiSuccess (message) {
-    Message.success(message)
-  },
-  // 鎺ュ彛璋冪敤澶辫触
-  apiFailed (err) {
-    // 涓嬭浇鎺ュ彛杩斿洖鐨勬槸ArrayBuffer锛屾鏃堕渶瑕佽В鏋愪负JSON骞舵彁绀洪敊璇秷鎭�傦紙涓嬭浇鎺ュ彛鍑虹幇涓氬姟澶辫触鐨勬儏鍐碉紝渚嬪鏃犳潈闄愮瓑锛�
-    if (err instanceof ArrayBuffer) {
-      const blob = new Blob([err])
-      const fileReader = new FileReader()
-      fileReader.readAsText(blob, 'utf-8')
-      fileReader.onload = function () {
-        Message.error(JSON.parse(fileReader.result).message)
-      }
-      return
-    }
-    Message.error(err.message)
-  }
-}
diff --git a/platform/src/plugins/messagebox.js b/platform/src/plugins/messagebox.js
deleted file mode 100644
index c7a6b80..0000000
--- a/platform/src/plugins/messagebox.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import { MessageBox } from 'element-ui'
-
-export default {
-  ...MessageBox,
-  // 鍒犻櫎浜屾纭
-  deleteConfirm (message) {
-    return MessageBox.confirm(message, '鍒犻櫎鎻愰啋', {
-      confirmButtonText: '纭鍒犻櫎',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning'
-    })
-  },
-  resetConfirm (message) {
-    return MessageBox.confirm(message, '閲嶇疆鎻愰啋', {
-      confirmButtonText: '纭閲嶇疆',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning'
-    })
-  },
-  // 绂佺敤浜屾纭
-  disableConfirm (message) {
-    return MessageBox.confirm(message, '绂佺敤鎻愰啋', {
-      confirmButtonText: '纭绂佺敤',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning'
-    })
-  },
-  // 瀵煎嚭浜屾纭
-  exportConfirm (message) {
-    return MessageBox.confirm(message, '瀵煎嚭鎻愰啋', {
-      confirmButtonText: '纭瀵煎嚭',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning'
-    })
-  },
-  // 瀹屽杽鎻愰啋
-  messageApprove (message) {
-    return MessageBox.confirm(message, '瀹℃牳鎻愰啋', {
-      confirmButtonText: '纭畾',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning'
-    })
-  },
-    // 闂嵎纭疄鎻愰啋
-  messageWaring (message, title, confirmText='纭畾', cancelText='鍙栨秷') {
-    return MessageBox.confirm(message, title, {
-      confirmButtonText: confirmText,
-      cancelButtonText: cancelText,
-      type: 'warning'
-    })
-  },
-    // 闂嵎纭疄鎻愰啋
-  messageConfirm (message, confirmText='纭畾', cancelText='鍙栨秷') {
-    return MessageBox.confirm(message, "鎿嶄綔纭", {
-      confirmButtonText: confirmText,
-      cancelButtonText: cancelText,
-      type: 'warning'
-    })
-  },
-  // 纭鏄惁鏈嶅姟璇ヤ紒涓�
-  cancelOrder (message) {
-    return MessageBox.confirm(message, '鍙栨秷鎻愮ず', {
-      confirmButtonText: '纭畾',
-      cancelButtonText: '鍙栨秷',
-      type: 'warning'
-    })
-  }
-}
diff --git a/platform/src/router/index.js b/platform/src/router/index.js
deleted file mode 100644
index cf320c3..0000000
--- a/platform/src/router/index.js
+++ /dev/null
@@ -1,98 +0,0 @@
-import Vue from 'vue'
-import VueRouter from 'vue-router'
-import AppLayout from '@/layouts/AppLayout'
-import { getUserInfo } from '@/api/system/common'
-const Login = () => import('@/views/login')
-
-const ErrorNoPermissions = () => import('@/views/no-permissions')
-const Error404 = () => import('@/views/not-found')
-
-Vue.use(VueRouter)
-
-const router = new VueRouter({
-  base: process.env.VUE_APP_CONTEXT_PATH + (process.env.VUE_APP_ROUTER_MODE === 'hash' ? '#' : ''),
-  mode: process.env.VUE_APP_ROUTER_MODE,
-  routes: [
-    // 鐧诲綍
-    {
-      name: 'login',
-      path: '/login',
-      component: Login
-    },
-
-    // 鏃犳潈闄�
-    {
-      name: 'no-permissions',
-      path: '/no-permissions',
-      component: ErrorNoPermissions
-    },
-    // 404
-    {
-      name: 'not-found',
-      path: '/not-found',
-      component: Error404
-    },
-    // 鍐呭椤碉紙鍔ㄦ�佸姞杞斤級
-    {
-      name: 'layout',
-      path: '',
-      component: AppLayout,
-      children: []
-    }
-  ]
-})
-router.beforeEach((to, from, next) => {
-  // 鏃犳潈璁块棶&404椤甸潰鍙洿鎺ヨ闂�
-  if (to.name === 'no-permissions' || to.name === 'not-found') {
-    next()
-    return
-  }
-  // 濡傛灉璁块棶鐨勬槸layout锛堝洖閫�鏃跺彲鑳藉瓨鍦ㄨ鎯呭喌锛夛紝鐩村index
-  if (to.name === 'layout') {
-    next({ name: 'index' })
-    return
-  }
-  // 楠岃瘉鐢ㄦ埛鏄惁鐧诲綍
-  const userInfo = router.app.$options.store.state.userInfo
-  if (userInfo != null) {
-    // 濡傛灉鐢ㄦ埛涓嶅瓨鍦ㄦ潈闄�
-    if (userInfo.permissions.length === 0) {
-      next({ name: 'no-permissions' })
-      return
-    }
-    // 濡傛灉璁块棶鐨勬槸鐧诲綍椤甸潰锛屽垯鐩存帴璺宠浆鑷抽椤�
-    if (to.name === 'login') {
-      next({ name: 'index' })
-      return
-    }
-    next()
-    return
-  }
-  getUserInfo()
-    .then(userInfo => {
-      // 濡傛灉鐢ㄦ埛涓嶅瓨鍦ㄦ潈闄�
-      if (userInfo.permissions.length === 0) {
-        next({ name: 'no-permissions' })
-        return
-      }
-      // 宸茬櫥褰曪紝瀛樺偍userInfo
-      router.app.$store.commit('setUserInfo', userInfo)
-      // 濡傛灉璁块棶鐨勬槸鐧诲綍椤甸潰锛屽垯鐩存帴璺宠浆鑷抽椤�
-      if (to.name === 'login') {
-        next({ name: 'index' })
-        return
-      }
-      next()
-    })
-    .catch(e => {
-      // 濡傛灉璁块棶鐨勬槸鐧诲綍椤甸潰锛屽垯鐩存帴鏀捐
-      if (to.name === 'login') {
-        next()
-        return
-      }
-      // 鏈櫥褰曪紝璺宠浆鑷崇櫥褰曢〉
-      next({ name: 'login' })
-    })
-})
-
-export default router
diff --git a/platform/src/store/index.js b/platform/src/store/index.js
deleted file mode 100644
index d2f4f72..0000000
--- a/platform/src/store/index.js
+++ /dev/null
@@ -1,88 +0,0 @@
-import Vue from 'vue'
-import Vuex from 'vuex'
-Vue.use(Vuex)
-
-const state = {
-  // 鐧诲綍鐢ㄦ埛淇℃伅
-  userInfo: null,
-  // 棣栭〉
-  homePage: null,
-  // 鑿滃崟
-  menuData: {
-    // 鑿滃崟鍒楄〃
-    list: [],
-    // 鏄惁鏀惰捣
-    collapse: false
-  },
-  //tags鏁扮粍
-  tags:[],
-  //tagsview鏍囩鏄剧ず闅愯棌
-  isCollapse:false
-}
-
-const mutations = {
-  // 鍒囨崲鑿滃崟鐘舵��
-  switchCollapseMenu (state, value) {
-    if (value != null) {
-      state.menuData.collapse = value
-    } else {
-      state.menuData.collapse = !state.menuData.collapse
-    }
-    window.localStorage.setItem('MENU_STATUS', state.menuData.collapse)
-  },
-  // 璁剧疆宸茬櫥褰曠殑鐢ㄦ埛淇℃伅
-  setUserInfo: (state, data) => {
-    state.userInfo = {
-      ...state.userInfo,
-      ...data
-    }
-  },
-
-  // 璁剧疆棣栭〉璺敱淇℃伅
-  setHomePage (state, homePage) {
-    state.homePage = homePage
-  },
-  // 閲嶇疆鑿滃崟
-  resetMenus: (state) => {
-    state.menuData.list = []
-  },
-  //  tags
-  pushtags(state,val){
-    //濡傛灉绛変簬-1璇存槑tabs涓嶅瓨鍦ㄩ偅涔堟彃鍏ワ紝鍚﹀垯浠�涔堥兘涓嶅仛
-    //findindex鎵捐鏍囷紝寰幆鍒ゆ柇涓�涓嬶紝濡傛灉绛変簬閭d箞灏变唬琛ㄦ湁鐩稿悓鐨勶紝灏变笉蹇呮坊鍔狅紝濡傛灉鎵句笉鍒伴偅灏辨槸-1.灏辨坊鍔�
-    let result = state.tags.findIndex(item => item.label === val.label)
-    if (result === -1) {
-      state.tags.push({...val, keepAlive: false})
-    } else {
-      state.tags[result]= {...val, keepAlive: true}
-    }
-    // result === -1 ? state.tags.push(val) : (state.tags[result]==val)
-  },
-  //鍏抽棴鏍囩
-  closeTab(state, val) {
-    //鍚屼笂锛屾壘瑙掓爣锛岀劧鍚庣敤瑙掓爣鐨勪綅缃搴斿垹闄や竴浣嶃�俿plice锛氳繖鏄暟缁勭殑鍒犻櫎鏂规硶
-    let result = state.tags.findIndex(item => item.label === val.label)
-    state.tags.splice(result, 1)
-  },
-  //鍏抽棴鎵�鏈塼agsview鏍囩
-  cleartagsview(state,val){
-    //娓呯┖鏁扮粍
-    state.tags=[]
-    //璺宠浆鍒伴椤�,val鎺ュ彈浼犺繃鏉ョ殑褰撳墠璺敱
-    if(val !== "/index"){
-      router.push({path:"/index"})
-    }
-  },
-  //鏀瑰彉tagsview鏄剧ず闅愯棌
-  changeisshow(state){
-    state.isCollapse=!state.isCollapse
-  }
-}
-const actions = {}
-const getters = {}
-export default new Vuex.Store({
-  state,
-  mutations,
-  actions,
-  getters
-})
diff --git a/platform/src/utils/form.js b/platform/src/utils/form.js
deleted file mode 100644
index cf60c6f..0000000
--- a/platform/src/utils/form.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// 楠岃瘉鎵嬫満鍙风爜
-export function checkMobile (rule, value, callback) {
-  if (value == null || value.trim() === '') {
-    callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖'))
-    return
-  }
-  if (!/^1\d{10}$/.test(value)) {
-    callback(new Error('鎵嬫満鍙风爜鏍煎紡涓嶆纭�'))
-    return
-  }
-  callback()
-}
-
-// 楠岃瘉閭
-export function checkEmail (rule, value, callback) {
-  if (value == null || value.trim() === '') {
-    callback()
-    return
-  }
-  if (!/^\S+@\S+\.\S+$/.test(value)) {
-    callback(new Error('閭鏍煎紡涓嶆纭�'))
-    return
-  }
-  callback()
-}
diff --git a/platform/src/utils/icons.js b/platform/src/utils/icons.js
deleted file mode 100644
index a8bc941..0000000
--- a/platform/src/utils/icons.js
+++ /dev/null
@@ -1,293 +0,0 @@
-export default [
-  // 鑷畾涔夊浘鏍�
-  'eva-icon-role',
-  'eva-icon-permission',
-  'eva-icon-department',
-  'eva-icon-position',
-  'eva-icon-dictionary',
-  'eva-icon-listener',
-  'eva-icon-log',
-  'eva-icon-log-opera',
-  'eva-icon-log-login',
-  // element-ui鍥炬爣
-  'el-icon-platform-eleme',
-  'el-icon-eleme',
-  'el-icon-delete-solid',
-  'el-icon-delete',
-  'el-icon-s-tools',
-  'el-icon-setting',
-  'el-icon-user-solid',
-  'el-icon-user',
-  'el-icon-phone',
-  'el-icon-phone-outline',
-  'el-icon-more',
-  'el-icon-more-outline',
-  'el-icon-star-on',
-  'el-icon-star-off',
-  'el-icon-s-goods',
-  'el-icon-goods',
-  'el-icon-warning',
-  'el-icon-warning-outline',
-  'el-icon-question',
-  'el-icon-info',
-  'el-icon-remove',
-  'el-icon-circle-plus',
-  'el-icon-success',
-  'el-icon-error',
-  'el-icon-zoom-in',
-  'el-icon-zoom-out',
-  'el-icon-remove-outline',
-  'el-icon-circle-plus-outline',
-  'el-icon-circle-check',
-  'el-icon-circle-close',
-  'el-icon-s-help',
-  'el-icon-help',
-  'el-icon-minus',
-  'el-icon-plus',
-  'el-icon-check',
-  'el-icon-close',
-  'el-icon-picture',
-  'el-icon-picture-outline',
-  'el-icon-picture-outline-round',
-  'el-icon-upload',
-  'el-icon-upload2',
-  'el-icon-download',
-  'el-icon-camera-solid',
-  'el-icon-camera',
-  'el-icon-video-camera-solid',
-  'el-icon-video-camera',
-  'el-icon-message-solid',
-  'el-icon-bell',
-  'el-icon-s-cooperation',
-  'el-icon-s-order',
-  'el-icon-s-platform',
-  'el-icon-s-fold',
-  'el-icon-s-unfold',
-  'el-icon-s-operation',
-  'el-icon-s-promotion',
-  'el-icon-s-home',
-  'el-icon-s-release',
-  'el-icon-s-ticket',
-  'el-icon-s-management',
-  'el-icon-s-open',
-  'el-icon-s-shop',
-  'el-icon-s-marketing',
-  'el-icon-s-flag',
-  'el-icon-s-comment',
-  'el-icon-s-finance',
-  'el-icon-s-claim',
-  'el-icon-s-custom',
-  'el-icon-s-opportunity',
-  'el-icon-s-data',
-  'el-icon-s-check',
-  'el-icon-s-grid',
-  'el-icon-menu',
-  'el-icon-share',
-  'el-icon-d-caret',
-  'el-icon-caret-left',
-  'el-icon-caret-right',
-  'el-icon-caret-bottom',
-  'el-icon-caret-top',
-  'el-icon-bottom-left',
-  'el-icon-bottom-right',
-  'el-icon-back',
-  'el-icon-right',
-  'el-icon-bottom',
-  'el-icon-top',
-  'el-icon-top-left',
-  'el-icon-top-right',
-  'el-icon-arrow-left',
-  'el-icon-arrow-right',
-  'el-icon-arrow-down',
-  'el-icon-arrow-up',
-  'el-icon-d-arrow-left',
-  'el-icon-d-arrow-right',
-  'el-icon-video-pause',
-  'el-icon-video-play',
-  'el-icon-refresh',
-  'el-icon-refresh-right',
-  'el-icon-refresh-left',
-  'el-icon-finished',
-  'el-icon-sort',
-  'el-icon-sort-up',
-  'el-icon-sort-down',
-  'el-icon-rank',
-  'el-icon-loading',
-  'el-icon-view',
-  'el-icon-c-scale-to-original',
-  'el-icon-date',
-  'el-icon-edit',
-  'el-icon-edit-outline',
-  'el-icon-folder',
-  'el-icon-folder-opened',
-  'el-icon-folder-add',
-  'el-icon-folder-remove',
-  'el-icon-folder-delete',
-  'el-icon-folder-checked',
-  'el-icon-tickets',
-  'el-icon-document-remove',
-  'el-icon-document-delete',
-  'el-icon-document-copy',
-  'el-icon-document-checked',
-  'el-icon-document',
-  'el-icon-document-add',
-  'el-icon-printer',
-  'el-icon-paperclip',
-  'el-icon-takeaway-box',
-  'el-icon-search',
-  'el-icon-monitor',
-  'el-icon-attract',
-  'el-icon-mobile',
-  'el-icon-scissors',
-  'el-icon-umbrella',
-  'el-icon-headset',
-  'el-icon-brush',
-  'el-icon-mouse',
-  'el-icon-coordinate',
-  'el-icon-magic-stick',
-  'el-icon-reading',
-  'el-icon-data-line',
-  'el-icon-data-board',
-  'el-icon-pie-chart',
-  'el-icon-data-analysis',
-  'el-icon-collection-tag',
-  'el-icon-film',
-  'el-icon-suitcase',
-  'el-icon-suitcase-1',
-  'el-icon-receiving',
-  'el-icon-collection',
-  'el-icon-files',
-  'el-icon-notebook-1',
-  'el-icon-notebook-2',
-  'el-icon-toilet-paper',
-  'el-icon-office-building',
-  'el-icon-school',
-  'el-icon-table-lamp',
-  'el-icon-house',
-  'el-icon-no-smoking',
-  'el-icon-smoking',
-  'el-icon-shopping-cart-full',
-  'el-icon-shopping-cart-1',
-  'el-icon-shopping-cart-2',
-  'el-icon-shopping-bag-1',
-  'el-icon-shopping-bag-2',
-  'el-icon-sold-out',
-  'el-icon-sell',
-  'el-icon-present',
-  'el-icon-box',
-  'el-icon-bank-card',
-  'el-icon-money',
-  'el-icon-coin',
-  'el-icon-wallet',
-  'el-icon-discount',
-  'el-icon-price-tag',
-  'el-icon-news',
-  'el-icon-guide',
-  'el-icon-male',
-  'el-icon-female',
-  'el-icon-thumb',
-  'el-icon-cpu',
-  'el-icon-link',
-  'el-icon-connection',
-  'el-icon-open',
-  'el-icon-turn-off',
-  'el-icon-set-up',
-  'el-icon-chat-round',
-  'el-icon-chat-line-round',
-  'el-icon-chat-square',
-  'el-icon-chat-dot-round',
-  'el-icon-chat-dot-square',
-  'el-icon-chat-line-square',
-  'el-icon-message',
-  'el-icon-postcard',
-  'el-icon-position',
-  'el-icon-turn-off-microphone',
-  'el-icon-microphone',
-  'el-icon-close-notification',
-  'el-icon-bangzhu',
-  'el-icon-time',
-  'el-icon-odometer',
-  'el-icon-crop',
-  'el-icon-aim',
-  'el-icon-switch-button',
-  'el-icon-full-screen',
-  'el-icon-copy-document',
-  'el-icon-mic',
-  'el-icon-stopwatch',
-  'el-icon-medal-1',
-  'el-icon-medal',
-  'el-icon-trophy',
-  'el-icon-trophy-1',
-  'el-icon-first-aid-kit',
-  'el-icon-discover',
-  'el-icon-place',
-  'el-icon-location',
-  'el-icon-location-outline',
-  'el-icon-location-information',
-  'el-icon-add-location',
-  'el-icon-delete-location',
-  'el-icon-map-location',
-  'el-icon-alarm-clock',
-  'el-icon-timer',
-  'el-icon-watch-1',
-  'el-icon-watch',
-  'el-icon-lock',
-  'el-icon-unlock',
-  'el-icon-key',
-  'el-icon-service',
-  'el-icon-mobile-phone',
-  'el-icon-bicycle',
-  'el-icon-truck',
-  'el-icon-ship',
-  'el-icon-basketball',
-  'el-icon-football',
-  'el-icon-soccer',
-  'el-icon-baseball',
-  'el-icon-wind-power',
-  'el-icon-light-rain',
-  'el-icon-lightning',
-  'el-icon-heavy-rain',
-  'el-icon-sunrise',
-  'el-icon-sunrise-1',
-  'el-icon-sunset',
-  'el-icon-sunny',
-  'el-icon-cloudy',
-  'el-icon-partly-cloudy',
-  'el-icon-cloudy-and-sunny',
-  'el-icon-moon',
-  'el-icon-moon-night',
-  'el-icon-dish',
-  'el-icon-dish-1',
-  'el-icon-food',
-  'el-icon-chicken',
-  'el-icon-fork-spoon',
-  'el-icon-knife-fork',
-  'el-icon-burger',
-  'el-icon-tableware',
-  'el-icon-sugar',
-  'el-icon-dessert',
-  'el-icon-ice-cream',
-  'el-icon-hot-water',
-  'el-icon-water-cup',
-  'el-icon-coffee-cup',
-  'el-icon-cold-drink',
-  'el-icon-goblet',
-  'el-icon-goblet-full',
-  'el-icon-goblet-square',
-  'el-icon-goblet-square-full',
-  'el-icon-refrigerator',
-  'el-icon-grape',
-  'el-icon-watermelon',
-  'el-icon-cherry',
-  'el-icon-apple',
-  'el-icon-pear',
-  'el-icon-orange',
-  'el-icon-coffee',
-  'el-icon-ice-tea',
-  'el-icon-ice-drink',
-  'el-icon-milk-tea',
-  'el-icon-potato-strips',
-  'el-icon-lollipop',
-  'el-icon-ice-cream-square',
-  'el-icon-ice-cream-round'
-]
diff --git a/platform/src/utils/request.js b/platform/src/utils/request.js
deleted file mode 100644
index 2673a72..0000000
--- a/platform/src/utils/request.js
+++ /dev/null
@@ -1,130 +0,0 @@
-import axios from 'axios'
-import Cookies from 'js-cookie'
-import pkg from '../../package'
-import { trim } from './util'
-import cache from '../plugins/cache'
-import { Message, Loading } from 'element-ui'
-
-axios.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8'
-const axiosInstance = axios.create({
-  baseURL: process.env.VUE_APP_API_PREFIX,
-  // 璇锋眰瓒呮椂鏃堕棿
-  timeout: 60000
-})
-
-// 鏂板缓璇锋眰鎷︽埅鍣�
-axiosInstance.interceptors.request.use(config => {
-  // 鍙傛暟鍘荤┖鏍�
-  if (config.trim === true) {
-    if (config.data != null) {
-      config.data = trim(config.data)
-    }
-    if (config.params != null) {
-      config.params = trim(config.params)
-    }
-  }
-  // 瀵煎嚭澶勭悊
-  if (config.download === true) {
-    config.responseType = 'blob'
-  }
-  // 璁剧疆鎿嶄綔骞冲彴
-  config.headers['eva-platform'] = `pc-${pkg.version}`
-  // 璁剧疆璁よ瘉澶�
-  const authToken = Cookies.get('eva-auth-token')
-  if (authToken != null) {
-    config.headers['eva-auth-token'] = authToken
-  }
-  return config
-}, function (error) {
-  return Promise.reject(error)
-})
-
-// 鏂板缓鍝嶅簲鎷︽埅鍣�
-axiosInstance.interceptors.response.use((response) => {
-  // console.log(response.status)
-  // debugger
-  // 璇锋眰澶辫触
-  if (response.status !== 200) {
-    return Promise.reject(new Error('鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�'))
-  }
-  // 涓嬭浇鎺ュ彛澶勭悊
-  if (response.headers['eva-opera-type'] === 'download') {
-    return Promise.resolve(response)
-  }
-  // 鏈櫥褰�
-  if (response.data.code === 401) {
-    if (response.config.autoLogin !== false) {
-      location.reload()
-      // window.location.href = process.env.VUE_APP_ROUTER_MODE === 'history' ? '/login' : '/#/login'
-    }
-    return Promise.reject(response.data)
-  }
-  // 涓氬姟澶辫触
-  if (!response.data.success) {
-    return Promise.reject(response.data)
-  }
-  return response.data.data
-}, function (error) {
-  if (error.code == null) {
-    return Promise.reject(new Error('鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庡啀璇�'))
-  }
-  if (error.code === 'ECONNABORTED' && error.message.indexOf('timeout') !== -1) {
-    return Promise.reject(new Error('鏈嶅姟鍣ㄥ搷搴旇秴鏃讹紝璇风◢鍚庡啀璇�'))
-  }
-  return Promise.reject(error)
-})
-
-// 缂撳瓨璇锋眰缁撴灉
-const buildCachePromise = (cacheKey, method, args, cacheImpl) => {
-  return {
-    __cacheImpl: cache[cacheImpl],
-    __arguments: args,
-    __result_promise: null,
-    // 寮�鍚紦瀛�
-    cache () {
-      const data = this.__cacheImpl.getJSON(cacheKey)
-      if (data != null) {
-        this.__result_promise = Promise.resolve(data)
-      }
-      if (this.__result_promise != null) {
-        return this.__result_promise
-      }
-      return this
-    },
-    then () {
-      return this.__access('then', arguments)
-    },
-    catch () {
-      return this.__access('catch', arguments)
-    },
-    finally () {
-      return this.__access('finally', arguments)
-    },
-    __access (methodName, args) {
-      if (this.__result_promise != null) {
-        return this.__result_promise
-      }
-      this.__result_promise = axiosInstance[method].apply(axiosInstance, this.__arguments)
-      this.__result_promise.then(data => {
-        this.__cacheImpl.setJSON(cacheKey, data)
-        return data
-      })
-      return this.__result_promise[methodName].apply(this.__result_promise, args)
-    }
-  }
-}
-const methods = ['get', 'post', 'delete', 'put', 'head', 'options', 'patch', 'request']
-axiosInstance.cache = function (cacheKey, isLocal = false) {
-  if (cacheKey == null) {
-    throw Error('Request cache key can not be null.')
-  }
-  const cacheAxiosInstance = {}
-  for (const method of methods) {
-    cacheAxiosInstance[method] = function () {
-      return buildCachePromise(cacheKey, method, arguments, isLocal ? 'local' : 'session')
-    }
-  }
-  return cacheAxiosInstance
-}
-
-export default axiosInstance
diff --git a/platform/src/utils/util.js b/platform/src/utils/util.js
deleted file mode 100644
index 2677347..0000000
--- a/platform/src/utils/util.js
+++ /dev/null
@@ -1,69 +0,0 @@
-// 鍘荤┖
-export function trim (data) {
-  if (data == null) {
-    return null
-  }
-  if (typeof data === 'string') {
-    return data.trim()
-  }
-  if (data instanceof Array) {
-    for (const item of data) {
-      trim(item)
-    }
-  }
-  if (typeof data === 'object') {
-    for (const key in data) {
-      data[key] = trim(data[key])
-    }
-  }
-  return data
-}
-
-// 鏍规嵁韬唤璇佽幏鍙栧勾榫�
-export function GetAge (identityCard) {
-  let len = (identityCard + "").length;
-  let strBirthday = "";
-  if (len === 18) {
-    //澶勭悊18浣嶇殑韬唤璇佸彿鐮佷粠鍙风爜涓緱鍒扮敓鏃ュ拰鎬у埆浠g爜
-    strBirthday =
-        identityCard.substr(6, 4) +
-        "/" +
-        identityCard.substr(10, 2) +
-        "/" +
-        identityCard.substr(12, 2);
-  }
-  if (len === 15) {
-    let birthdayValue = "";
-    birthdayValue = identityCard.charAt(6) + identityCard.charAt(7);
-    if (parseInt(birthdayValue) < 10) {
-      strBirthday =
-          "20" +
-          identityCard.substr(6, 2) +
-          "/" +
-          identityCard.substr(8, 2) +
-          "/" +
-          identityCard.substr(10, 2);
-    } else {
-      strBirthday =
-          "19" +
-          identityCard.substr(6, 2) +
-          "/" +
-          identityCard.substr(8, 2) +
-          "/" +
-          identityCard.substr(10, 2);
-    }
-  }
-  let birthDate = new Date(strBirthday);
-  let nowDateTime = new Date();
-  let age = nowDateTime.getFullYear() - birthDate.getFullYear();
-  //鍐嶈�冭檻鏈堛�佸ぉ鐨勫洜绱�;.getMonth()鑾峰彇鐨勬槸浠�0寮�濮嬬殑锛岃繖閲岃繘琛屾瘮杈冿紝涓嶉渶瑕佸姞1
-  if (
-      nowDateTime.getMonth() < birthDate.getMonth() ||
-      (nowDateTime.getMonth() == birthDate.getMonth() &&
-          nowDateTime.getDate() < birthDate.getDate())
-  ) {
-    age--;
-  }
-  return age;
-}
-
diff --git a/platform/src/views/business/dispatchUnit.vue b/platform/src/views/business/dispatchUnit.vue
index 39b3bad..c7c2b55 100644
--- a/platform/src/views/business/dispatchUnit.vue
+++ b/platform/src/views/business/dispatchUnit.vue
@@ -2,7 +2,11 @@
   <TableLayout :permissions="['business:dispatchunit:query']">
     <!-- 鎼滅储琛ㄥ崟 -->
     <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+<<<<<<< HEAD
       <el-form-item label="鎵�灞炰笟" prop="companyId">
+=======
+      <el-form-item label="鎵�灞炰紒涓�" prop="companyId">
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
         <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
           <el-option
               v-for="item in companyList"
diff --git a/platform/src/views/index.vue b/platform/src/views/index.vue
deleted file mode 100644
index 86c30d9..0000000
--- a/platform/src/views/index.vue
+++ /dev/null
@@ -1,599 +0,0 @@
-<template>
-  <div class="home">
-    <div class="home_inlet">
-      <div class="home_inlet_label">蹇嵎鍏ュ彛</div>
-      <div class="home_inlet_list" v-if="userInfo.type==1" >
-        <div class="home_inlet_item" v-for="(item, index) in cate" :key="index" @click="jump(item.url)">
-          <img :src="item.icon" />
-          <span>{{item.name}}</span>
-        </div>
-      </div>
-      <div class="home_inlet_list" v-else >
-        <div class="home_inlet_item" v-for="(item, index) in catePlat" :key="index" @click="jump(item.url)">
-          <img :src="item.icon" />
-          <span>{{item.name}}</span>
-        </div>
-      </div>
-    </div>
-    <div class="home_content">
-      <div class="home_content_left">
-        <div class="home_content_left_item" ref="picture1"></div>
-        <div class="home_content_left_item" ref="picture2"></div>
-        <div class="home_content_left_item" ref="picture3"></div>
-      </div>
-      <div class="home_content_right">
-        <div class="home_content_right_label" v-if="tabs && tabs.length>0" >浠e姙浜嬮」</div>
-        <el-tabs v-model="activeName" @tab-click="handleClick" >
-          <el-tab-pane v-for="a in tabs" :key="a.path" :name="a.name" >
-             <span slot="label" title="鐐瑰嚮鍒锋柊"> {{a.label }}
-                        <el-badge v-if="(a.name==0?totalPage0:(a.name==1?totalPage1:totalPage2))  >0" :value="(a.name==0?totalPage0:(a.name==1?totalPage1:totalPage2)) " class="item"></el-badge>
-                    </span>
-          </el-tab-pane>
-        </el-tabs>
-        <div v-if="activeName === '0'"  v-permissions="['business:notice:insurance']" >
-          <div class="home_content_right_list">
-            <div class="list_item" v-for="(item, index) in tableData0" :key="index">
-              <div class="list_item_left">
-                <span>{{item.title}}锛坽{ item.typeDetail }}锛�</span>
-                <span>{{item.info}}锛坽{item.content}}锛�</span>
-              </div>
-              <div class="list_item_center">
-                <span>{{item.companyName}}</span>
-                <span>鎻愪氦鏃堕棿  {{item.createDate}}</span>
-              </div>
-              <div class="list_item_right">
-                <span @click="detail(item)">鏌ョ湅</span>
-              </div>
-            </div>
-          </div>
-          <div class="home_content_right_page">
-            <el-pagination
-                @current-change="handleCurrentChange0"
-                :current-page="page0"
-                :page-size="5"
-                layout="total, prev, pager, next, jumper"
-                :total="totalPage0">
-            </el-pagination>
-          </div>
-        </div>
-        <div v-if="activeName === '1'"  v-permissions="['business:notice:tax']">
-          <div class="home_content_right_list">
-            <div class="list_item" v-for="(item, index) in tableData1" :key="index">
-              <div class="list_item_left">
-                <span>{{item.title}}锛坽{ item.typeDetail }}锛�</span>
-                <span>{{item.info}}锛坽{item.content}}锛�</span>
-              </div>
-              <div class="list_item_center">
-                <span>{{item.companyName}}</span>
-                <span>鎻愪氦鏃堕棿  {{item.createDate}}</span>
-              </div>
-              <div class="list_item_right">
-                <span  @click="detail(item)">鏌ョ湅</span>
-              </div>
-            </div>
-          </div>
-          <div class="home_content_right_page">
-            <el-pagination
-                @current-change="handleCurrentChange1"
-                :current-page="page1"
-                :page-size="5"
-                layout="total, prev, pager, next, jumper"
-                :total="totalPage1">
-            </el-pagination>
-          </div>
-        </div>
-        <div v-if="activeName === '2'"  v-permissions="['business:notice:settle']">
-          <div class="home_content_right_list">
-            <div class="list_item" v-for="(item, index) in tableData2" :key="index">
-              <div class="list_item_left">
-                <span>{{item.title}}锛坽{ item.typeDetail }}锛�</span>
-                <span>{{item.info}}锛坽{item.content}}锛�</span>
-              </div>
-              <div class="list_item_center">
-                <span>{{item.companyName}}</span>
-                <span>鎻愪氦鏃堕棿  {{item.createDate}}</span>
-              </div>
-              <div class="list_item_right">
-                <span  @click="detail(item)">鏌ョ湅</span>
-              </div>
-            </div>
-          </div>
-          <div class="home_content_right_page">
-            <el-pagination
-                @current-change="handleCurrentChange2"
-                :current-page="page2"
-                :page-size="5"
-                layout="total, prev, pager, next, jumper"
-                :total="totalPage2">
-            </el-pagination>
-          </div>
-        </div>
-      </div>
-    </div>
-    <OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handleCurrentChange0()"/>
-    <dispatchUnitDetailsPlat ref="dispatchUnitDetailsPlat" @success="handleCurrentChange0()"/>
-    <OperaSettleClaimsWindow ref="operaSettleClaimsWindow" @success="handleCurrentChange2()"/>
-    <OperaApplyChangeUnitDetailWindow ref="operaApplyChangeUnitDetailWindow" @success="handleCurrentChange0()"/>
-    <OperaApplyChangeDetailWindow ref="operaApplyChangeDetailWindow" @success="handleCurrentChange0()"/>
-    <OperaTaxesWindow ref="OperaTaxesWindow" @success="handleCurrentChange1()"/>
-  </div>
-</template>
-
-<script>
-import * as echarts from 'echarts'
-import { mapState } from 'vuex'
-import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
-import dispatchUnitDetailsPlat from '@/components/business/dispatchUnitDetailsPlat'
-import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
-import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
-import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
-import OperaTaxesWindow from '@/components/business/OperaTaxesWindow'
-import { fetchList as noticeList } from '@/api/business/notices'
-export default {
-  components: {
-    OperaInsuranceApplyWindow,
-    dispatchUnitDetailsPlat,
-    OperaTaxesWindow,
-    OperaSettleClaimsWindow,
-    OperaApplyChangeDetailWindow,
-    OperaApplyChangeUnitDetailWindow
-  },
-  name: 'Index',
-  data () {
-    return {
-      activeName: '0',
-      tabs: [],
-      page0: 1,
-      page1: 1,
-      page2: 1,
-      totalPage2: 0,
-      totalPage1: 0,
-      totalPage0: 0,
-      tableData0: [],
-      tableData1: [],
-      tableData2: [],
-      cate: [
-        {
-          name: '鎶曚繚鐢宠',
-          url: '/enterprise/insuranceApply',
-          icon: require('../assets/icons/company/apply.png')
-        },
-        {
-          name: '鎻愪氦鎶ユ',
-          url: '/business/settleClaims',
-          icon: require('../assets/icons/company/settle.png')
-        },
-        {
-          name: '娣诲姞娲鹃仯鍗曚綅',
-          url: '/enterprise/dispatchUnit',
-          icon: require('../assets/icons/company/dipatch_unit.png')
-        },
-        {
-          name: '鐩翠繚寮�绁�',
-          url: '/enterprise/directInvoicing',
-          icon: require('../assets/icons/company/tax.png')
-        },
-        {
-          name: '濮旀墭淇濆紑绁�',
-          url: '/enterprise/entrustedInvoicing',
-          icon: require('../assets/icons/company/tax.png')
-        }
-      ],
-      catePlat: [
-        {
-          name: '鎶曚繚瀹℃牳',
-          url: '/business/insuranceApply',
-          icon: require('../assets/icons/plat/apply_check.png')
-        },
-        {
-          name: '鍔�/鍑忎繚瀹℃牳',
-          url: '/business/applyChange',
-          icon: require('../assets/icons/plat/change_apply_check.png')
-        },
-        {
-          name: '鐞嗚禂鏈嶅姟',
-          url: '/business/settleClaims',
-          icon: require('../assets/icons/plat/settle_check.png')
-        },
-        {
-          name: '鍙戠エ绠$悊',
-          url: '/business/taxes',
-          icon: require('../assets/icons/plat/tax_check.png')
-        },
-        {
-          name: '鏂板浼佷笟',
-          url: '/business/company',
-          icon: require('../assets/icons/plat/company_add.png')
-        }
-      ]
-    }
-  },
-  computed: {
-    ...mapState(['userInfo'])
-  },
-  mounted () {
-    this.setPicture1()
-    this.setPicture2()
-    this.setPicture3()
-    this.initPanel()
-    this.setLoadTimer()
-  },
-  methods: {
-    detail (obj) {
-      if (obj.objType === 0) {
-        this.$refs.operaInsuranceApplyWindow.open('鎶曚繚鐢宠璇︽儏', { id: obj.objId })
-      } else if (obj.objType === 1) {
-        this.$refs.operaApplyChangeDetailWindow.open('鍔犲噺淇濊鎯�', { id: obj.objId, applyId: obj.param1 })
-      } else if (obj.objType === 2) {
-        this.$refs.operaApplyChangeUnitDetailWindow.open('鎹㈠巶鐢宠璇︽儏', { id: obj.objId, applyId: obj.param1 })
-      } else if (obj.objType === 3) {
-        this.$refs.dispatchUnitDetailsPlat.open('娲鹃仯鍗曡鎯�', { id: obj.objId })
-      } else if (obj.objType === 4) {
-        this.$refs.OperaTaxesWindow.open('寮�绁ㄧ敵璇疯鎯�', { id: obj.objId })
-      } else if (obj.objType === 5) {
-        this.$refs.operaSettleClaimsWindow.open('鐞嗚禂璇︽儏', { id: obj.objId })
-      }
-    },
-    setLoadTimer () {
-      var that = this
-      this.initLoadData()
-      if (window.timer) {
-        clearInterval(window.timer)
-      }
-      window.timer = setInterval(() => {
-          that.initLoadData()
-      }, 60000)
-    },
-    initLoadData(){
-      var pemissons = this.userInfo.permissions
-      if (pemissons.includes('business:notice:insurance')) {
-        this.handleCurrentChange0(0)
-      }
-      if (pemissons.includes('business:notice:tax')) {
-        this.handleCurrentChange1(0)
-      }
-      if (pemissons.includes('business:notice:settle')) {
-        this.handleCurrentChange2(0)
-      }
-    },
-    getNoticeList (type, page) {
-      noticeList({
-        page: page,
-        capacity: 5,
-        model: { queryType: type },
-        sorts: []
-      })
-        .then(response => {
-          if (type === 0) {
-            this.tableData0 = response.records
-            this.totalPage0 = response.total
-          }
-          if (type === 1) {
-            this.tableData1 = response.records
-            this.totalPage1 = response.total
-          } if (type === 2) {
-            this.tableData2 = response.records
-            this.totalPage2 = response.total
-          }
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-    },
-    initPanel () {
-      var pemissons = this.userInfo.permissions
-
-      if (pemissons.includes('business:notice:insurance')) {
-        this.tabs.push({ name: '0', label: '鎶曚繚浠e姙' })
-        // this.handleCurrentChange0(0);
-      }
-      if (pemissons.includes('business:notice:tax')) {
-        this.tabs.push({ name: '1', label: '鍙戠エ浠e姙' })
-        // this.handleCurrentChange1(0);
-      }
-      if (pemissons.includes('business:notice:settle')) {
-        this.tabs.push({ name: '2', label: '鐞嗚禂浠e姙' })
-        // this.handleCurrentChange2(0);
-      }
-      /* if (pemissons.includes('business:notice:insurance')) {
-        this.getNoticeList(0, this.page0)
-      }
-      if (pemissons.includes('business:notice:tax')) {
-        this.getNoticeList(1, this.page1)
-      }
-      if (pemissons.includes('business:notice:settle')) {
-        this.getNoticeList(2, this.page2)
-      } */
-    },
-    handleClick (e) {
-      this.activeName = e.name
-      if (this.activeName === '0') {
-        this.handleCurrentChange0(0)
-      } else if (this.activeName === '1') {
-        this.handleCurrentChange1(0)
-      } else if (this.activeName === '2') {
-        this.handleCurrentChange2(0)
-      }
-    },
-    handleCurrentChange0 (page) {
-      this.page0 = page
-      this.getNoticeList(0, this.page0)
-    },
-    handleCurrentChange1 (page) {
-      this.page1 = page
-      this.getNoticeList(1, this.page1)
-    },
-    handleCurrentChange2 (page) {
-      this.page2 = page
-      this.getNoticeList(2, this.page2)
-    },
-    jump (url) {
-      if (!url) return
-      this.$router.push({ path: url })
-    },
-    setPicture1 () {
-      const chartDom = this.$refs.picture1
-      const myChart = echarts.init(chartDom)
-      let option
-      option = {
-        title: {
-          text: '褰撴湀淇濋櫓閲戦',
-          left: '5%',
-          top: '5%'
-        },
-        tooltip: {
-          trigger: 'item'
-        },
-        series: [
-          {
-            type: 'pie',
-            radius: '50%',
-            data: [
-              { value: 1048, name: '淇濋殰涓�' },
-              { value: 735, name: '涓嶅湪淇�' }
-            ],
-            emphasis: {
-              itemStyle: {
-                shadowBlur: 10,
-                shadowOffsetX: 0,
-                shadowColor: 'rgba(0, 0, 0, 0.5)'
-              }
-            }
-          }
-        ]
-      }
-
-      option && myChart.setOption(option)
-    },
-    setPicture2 () {
-      const chartDom = this.$refs.picture2
-      const myChart = echarts.init(chartDom)
-      let option
-      option = {
-        title: {
-          text: '褰撴湀鍦ㄤ繚浜烘暟',
-          left: '5%',
-          top: '5%'
-        },
-        grid: {
-          left: '3%',
-          right: '4%',
-          bottom: '13%',
-          containLabel: true
-        },
-        tooltip: {
-          trigger: 'axis'
-        },
-        xAxis: {
-          type: 'category',
-          data: ['涓�鏈�', '浜屾湀', '涓夋湀', '鍥涙湀', '浜旀湀', '鍏湀', '涓冩湀', '鍏湀', '涔濇湀', '鍗佹湀', '鍗佷竴鏈�', '鍗佷簩鏈�']
-        },
-        yAxis: {
-          type: 'value'
-        },
-        series: [
-          {
-            data: [10, 30, 25, 16, 21, 18, 5, 30, 30, 30, 30, 30],
-            type: 'line'
-          }
-        ]
-      }
-
-      option && myChart.setOption(option)
-    },
-    setPicture3 () {
-      const chartDom = this.$refs.picture3
-      const myChart = echarts.init(chartDom)
-      let option
-      option = {
-        title: {
-          text: '鎬昏禂浠樼巼 78%',
-          left: '5%',
-          top: '5%'
-        },
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: {
-            type: 'shadow'
-          }
-        },
-        grid: {
-          left: '3%',
-          right: '4%',
-          bottom: '25%',
-          containLabel: true
-        },
-        xAxis: {
-          type: 'value'
-          // boundaryGap: [0, 0.01]
-        },
-        yAxis: {
-          type: 'category',
-          data: ['淇濋櫓A璧斾粯鐜�', '淇濋櫓B璧斾粯鐜�', '鎬昏禂浠樼巼']
-        },
-        series: [
-          {
-            type: 'bar',
-            stack: 'total',
-            barWidth: '60%',
-            data: [10, 20, 30]
-          },
-          {
-            type: 'bar',
-            stack: 'total',
-            barWidth: '60%',
-            data: [15, 16, 24]
-          }
-        ]
-      }
-
-      option && myChart.setOption(option)
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-.home {
-  width: 100%;
-  height: 100%;
-  .home_inlet {
-    width: 100%;
-    height: 160px;
-    display: flex;
-    flex-direction: column;
-    padding: 20px;
-    box-sizing: border-box;
-    background: #ffffff;
-    .home_inlet_label {
-      width: 100%;
-      font-size: 18px;
-      font-weight: bold;
-      color: black;
-      margin-bottom: 20px;
-    }
-    .home_inlet_list {
-      width: 100%;
-      display: flex;
-      align-items: center;
-      .home_inlet_item {
-        flex: 1;
-        display: flex;
-        flex-direction: column;
-        align-items: center;
-        justify-content: center;
-        cursor: pointer;
-        img {
-          width: 40px;
-          height: 40px;
-        }
-        span {
-          font-size: 14px;
-          color: black;
-          margin-top: 5px;
-        }
-      }
-    }
-  }
-  .home_content {
-    width: 100%;
-    height: calc(100% - 170px);
-    margin-top: 10px;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    .home_content_left {
-      width: 350px;
-      height: 100%;
-      flex-shrink: 0;
-      display: flex;
-      flex-direction: column;
-      justify-content: space-between;
-      .home_content_left_item {
-        width: 100%;
-        height: 32%;
-        background: #ffffff;
-      }
-    }
-    .home_content_right {
-      flex: 1;
-      height: 100%;
-      background: #ffffff;
-      margin-left: 10px;
-      padding: 20px;
-      box-sizing: border-box;
-      position: relative;
-      .home_content_right_label {
-        font-size: 18px;
-        color: black;
-        font-weight: bold;
-      }
-      .home_content_right_list {
-        width: 100%;
-        display: flex;
-        flex-direction: column;
-        .list_item {
-          padding: 10px;
-          box-sizing: border-box;
-          width: 100%;
-          display: flex;
-          justify-content: space-between;
-          border: 1px solid #ececec;
-          margin-bottom: 15px;
-          &:last-child {
-            margin-bottom: 0 !important;
-          }
-          .list_item_left {
-            display: flex;
-            width: 60%;
-            flex-direction: column;
-            span {
-              &:nth-child(1) {
-                font-size: 14px;
-                color: black;
-                font-weight: bold;
-              }
-              &:nth-child(2) {
-                font-size: 14px;
-                color: black;
-                margin-top: 5px;
-              }
-            }
-          }
-          .list_item_center {
-            display: flex;
-            flex-direction: column;
-            span {
-              font-size: 14px;
-              color: black;
-              &:nth-child(2) {
-                margin-top: 5px;
-              }
-            }
-          }
-          .list_item_right {
-            height: 100%;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            span {
-              font-size: 14px;
-              color: #1890FF;
-              margin-top: 10px;
-              cursor: pointer;
-            }
-          }
-        }
-      }
-      .home_content_right_page {
-        margin-top: 20px;
-        position: relative;
-        bottom: 20px;
-        left: 20px;
-        box-sizing: border-box;
-      }
-    }
-  }
-}
-</style>
diff --git a/platform/src/views/login.vue b/platform/src/views/login.vue
index b459972..05b0ed4 100644
--- a/platform/src/views/login.vue
+++ b/platform/src/views/login.vue
@@ -1,4 +1,5 @@
 <template>
+<<<<<<< HEAD
     <div class="wrap">
         <div class="introduce">
             <h2>棰勯�夋竻鍗曟煡璇㈢郴缁�</h2>
@@ -29,6 +30,21 @@
                 </template>
             </div>
             <el-button :loading="loading" @click="login">鐧�&nbsp;&nbsp;褰�</el-button>
+=======
+  <div class="wrap">
+    <div class="introduce">
+      <h2>棰勯�夋竻鍗曟煡璇㈢郴缁�</h2>
+    </div>
+    <div class="login">
+      <h1>绯荤粺鐧诲綍&nbsp;/&nbsp;LOGIN IN</h1>
+      <div class="info-input">
+        <el-input v-model="username" placeholder="璇疯緭鍏ョ敤鎴峰悕" prefix-icon="el-icon-user-solid" maxlength="50" v-trim/>
+        <el-input v-model="password" placeholder="璇疯緭鍏ュ瘑鐮�" type="password" prefix-icon="eva-icon-password" maxlength="30" show-password/>
+        <div class="captcha-input">
+          <el-input v-model="captcha.value" placeholder="鍥剧墖楠岃瘉鐮�" prefix-icon="eva-icon-shield" maxlength="4" @keypress.enter.native="login"/>
+          <img v-if="!captcha.loading" :src="captcha.uri" @click="refreshCaptcha">
+          <span v-else><i class="el-icon-loading"></i></span>
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
         </div>
     </div>
 </template>
diff --git a/platform/src/views/no-permissions.vue b/platform/src/views/no-permissions.vue
deleted file mode 100644
index 6b90c77..0000000
--- a/platform/src/views/no-permissions.vue
+++ /dev/null
@@ -1,38 +0,0 @@
-<template>
-  <NotAllow>
-    <div class="content">
-      <img src="../assets/images/not-allow.png">
-      <h2>鏃犳潈璁块棶</h2>
-      <p>濡傛偍闇�瑕佽闂绯荤粺锛岃鑱旂郴绯荤粺绠$悊鍛�</p>
-      <el-button @click="logout" type="primary">閫�鍑虹郴缁�</el-button>
-    </div>
-  </NotAllow>
-</template>
-
-<script>
-import NotAllow from '../components/common/NotAllow'
-import { mapMutations } from 'vuex'
-import { logout } from '@/api/system/common'
-export default {
-  name: 'NoPermissions',
-  components: { NotAllow },
-  methods: {
-    ...mapMutations(['setUserInfo']),
-    // 閫�鍑虹櫥褰�
-    logout () {
-      logout()
-        .then(() => {
-          this.$router.push({ name: 'login' })
-          this.setUserInfo(null)
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-    }
-  }
-}
-</script>
-
-<style scoped>
-
-</style>
diff --git a/platform/src/views/not-found.vue b/platform/src/views/not-found.vue
deleted file mode 100644
index 33f8d28..0000000
--- a/platform/src/views/not-found.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-<template>
-  <div class="error-404">
-    <div>
-      <div class="left">
-        <img src="../assets/images/404.png">
-        <h1>鎵句笉鍒扮綉椤�</h1>
-        <p></p>
-        <div class="opera">
-          <el-button @click="$router.back()">杩斿洖</el-button>
-          <el-button type="primary" @click="$router.push('/index')">鍓嶅線棣栭〉</el-button>
-        </div>
-      </div>
-      <div class="right">
-        <h2>浣犲彲浠ュ皾璇曚互涓嬫搷浣�</h2>
-        <p>1. 濡傛灉鏄墜鍔ㄦ洿鏀圭殑缃戦〉鍦板潃锛岃妫�鏌ョ綉椤靛湴鍧�鏄惁姝g‘</p>
-        <p>2. 鐐瑰嚮銆愯繑鍥炪�戞寜閽埛鏂伴〉闈㈠悗閲嶈瘯</p>
-        <p>3. 鑱旂郴绯荤粺绠$悊鍛�</p>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'NotFound'
-}
-</script>
-
-<style scoped lang="scss">
-.error-404 {
-  height: 100%;
-  text-align: center;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  & > div {
-    margin-top: -100px;
-    display: flex;
-  }
-  .left {
-    h1 {
-      font-size: 26px;
-    }
-    .opera {
-      margin-top: 30px;
-    }
-  }
-  .right {
-    text-align: left;
-    margin-top: 16px;
-    margin-left: 40px;
-    padding: 30px 50px;
-    border-radius: 16px;
-    background: url("../assets/images/404-tip.png") no-repeat;
-    background-size: 100% 100%;
-    box-sizing: border-box;
-    h2 {
-      font-size: 16px;
-      margin-bottom: 16px;
-    }
-    p {
-      margin: 0;
-      padding: 0;
-      font-size: 14px;
-      line-height: 26px;
-    }
-  }
-}
-</style>
diff --git a/platform/src/views/system/data-permission.vue b/platform/src/views/system/data-permission.vue
deleted file mode 100644
index a9ce2c2..0000000
--- a/platform/src/views/system/data-permission.vue
+++ /dev/null
@@ -1,197 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:datapermission:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="涓氬姟妯″潡" prop="businessCode">
-        <DataPermModuleSelect v-model="searchForm.businessCode" clearable @change="search"/>
-      </el-form-item>
-      <el-form-item label="瑙掕壊" prop="roleId">
-        <RoleSelect v-model="searchForm.roleId" clearable @change="search"/>
-      </el-form-item>
-      <section>
-        <el-button type="primary" @click="search">鎼滅储</el-button>
-        <el-button @click="reset">閲嶇疆</el-button>
-      </section>
-    </el-form>
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['system:datapermission:create', 'system:datapermission:delete']">
-        <li><el-button type="primary" @click="$refs.operaDataPermissionWindow.open('鏂板缓鏁版嵁鏉冮檺')" icon="el-icon-plus" v-permissions="['system:datapermission:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:datapermission:delete']">鍒犻櫎</el-button></li>
-      </ul>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        stripe
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column prop="businessCode" label="涓氬姟妯″潡" min-width="100px">
-          <template slot-scope="{row}">{{row.businessCode | moduleText(modules)}}</template>
-        </el-table-column>
-        <el-table-column prop="roleId" label="瑙掕壊" min-width="100px">
-          <template slot-scope="{row}">{{row.role.name}}</template>
-        </el-table-column>
-        <el-table-column prop="type" label="鏉冮檺绫诲瀷" min-width="140px">
-          <template slot-scope="{row}">{{row.type | typeText(types)}}</template>
-        </el-table-column>
-        <el-table-column prop="disabled" label="鏄惁鍚敤" min-width="100px">
-          <template slot-scope="{row}">
-            <el-switch v-model="row.disabled" :active-value="false" :inactive-value="true" @change="switchDisabled(row)"/>
-          </template>
-        </el-table-column>
-        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
-        <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column prop="updateUser" label="淇敼浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="updateTime" label="淇敼鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column
-          v-if="containPermissions(['system:datapermission:update', 'system:datapermission:delete'])"
-          label="鎿嶄綔"
-          min-width="120"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaDataPermissionWindow.open('缂栬緫鏁版嵁鏉冮檺', row)" icon="el-icon-edit" v-permissions="['system:datapermission:update']">缂栬緫</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:datapermission:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      >
-      </pagination>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaDataPermissionWindow ref="operaDataPermissionWindow" @success="handlePageChange"/>
-  </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaDataPermissionWindow from '@/components/system/datapermission/OperaDataPermissionWindow'
-import DataPermModuleSelect from '@/components/system/datapermission/DataPermModuleSelect'
-import RoleSelect from '../../components/system/role/RoleSelect'
-
-// 鑾峰彇妯″潡鍚嶇О
-const __getModuleName = function (businessCode, modules) {
-  for (const module of modules) {
-    if (module.businessCode === businessCode) {
-      return module.moduleName
-    }
-  }
-  return '鏈煡'
-}
-
-export default {
-  name: 'DataPermission',
-  extends: BaseTable,
-  components: { RoleSelect, DataPermModuleSelect, TableLayout, Pagination, OperaDataPermissionWindow },
-  data () {
-    return {
-      // 鏁版嵁鏉冮檺妯″潡
-      modules: [],
-      // 鏁版嵁鏉冮檺绫诲瀷
-      types: [],
-      // 鎼滅储
-      searchForm: {
-        businessCode: '',
-        roleId: null,
-        type: ''
-      }
-    }
-  },
-  filters: {
-    // 鏁版嵁鏉冮檺绫诲瀷鏂囨
-    typeText (value, types) {
-      for (const type of types) {
-        if (type.code === value) {
-          return type.remark
-        }
-      }
-      return '鏈煡'
-    },
-    // 鏁版嵁鏉冮檺妯″潡鏂囨
-    moduleText (value, modules) {
-      return __getModuleName(value, modules)
-    }
-  },
-  methods: {
-    // 鍚敤/绂佺敤鑿滃崟
-    switchDisabled (row) {
-      if (!row.disabled) {
-        this.__updateStatus(row)
-        return
-      }
-      this.$dialog.disableConfirm(`纭绂佺敤 ${__getModuleName(row.businessCode, this.modules)}/${row.role.name} 鏁版嵁鏉冮檺鍚楋紵`)
-        .then(() => {
-          this.__updateStatus(row)
-        }).catch(() => {
-          row.disabled = !row.disabled
-        })
-    },
-    // 鍒犻櫎琛�
-    deleteById (row) {
-      this.$dialog.deleteConfirm(`纭鍒犻櫎銆�${__getModuleName(row.businessCode, this.modules)}/${row.role.name}銆戞暟鎹潈闄愬悧锛焋)
-        .then(() => {
-          this.isWorking.delete = true
-          this.api.deleteById(row.id)
-            .then(() => {
-              this.$tip.apiSuccess('鍒犻櫎鎴愬姛')
-              this.__afterDelete()
-            })
-            .catch(e => {
-              this.$tip.apiFailed(e)
-            })
-            .finally(() => {
-              this.isWorking.delete = false
-            })
-        })
-        .catch(() => {})
-    },
-    // 淇敼鐘舵��
-    __updateStatus (row) {
-      this.api.updateStatus({
-        id: row.id,
-        disabled: row.disabled
-      })
-        .then(() => {
-          this.$tip.apiSuccess('淇敼鎴愬姛')
-        })
-        .catch(e => {
-          row.disabled = !row.disabled
-          this.$tip.apiFailed(e)
-        })
-    }
-  },
-  async created () {
-    this.config({
-      module: '鏁版嵁鏉冮檺',
-      api: '/system/dataPermission'
-    })
-    // 鍒濆鍖栨暟鎹潈闄愭ā鍧�
-    await this.api.fetchModules()
-      .then(data => {
-        this.modules = data
-      })
-    // 鍒濆鍖栨暟鎹潈闄愭ā鍧�
-    await this.api.fetchTypes()
-      .then(data => {
-        this.types = data
-      })
-      .catch(e => {
-        console.log(e)
-      })
-    // 鎵ц鎼滅储
-    this.search()
-  }
-}
-</script>
diff --git a/platform/src/views/system/department.vue b/platform/src/views/system/department.vue
deleted file mode 100644
index 3c9b7c7..0000000
--- a/platform/src/views/system/department.vue
+++ /dev/null
@@ -1,104 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:department:query']">
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['system:department:create', 'system:department:delete']">
-        <li><el-button type="primary" @click="$refs.operaDepartmentWindow.open('鏂板缓閮ㄩ棬')" icon="el-icon-plus" v-permissions="['system:department:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:department:delete']">鍒犻櫎</el-button></li>
-      </ul>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-        row-key="id"
-        stripe
-        default-expand-all
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" fixed="left" width="55"></el-table-column>
-        <el-table-column prop="name" label="閮ㄩ棬鍚嶇О" fixed="left" min-width="200px"></el-table-column>
-        <el-table-column prop="code" label="閮ㄩ棬缂栫爜" fixed="left" min-width="100px"></el-table-column>
-        <el-table-column prop="userCount" label="閮ㄩ棬浜烘暟" min-width="100px"></el-table-column>
-        <el-table-column prop="phone" label="鑱旂郴鐢佃瘽" min-width="100px"></el-table-column>
-        <el-table-column prop="email" label="閮ㄩ棬閭" min-width="180px"></el-table-column>
-        <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column
-          v-if="containPermissions(['system:department:update', 'system:department:create', 'system:department:delete', 'system:department:queryUsers'])"
-          label="鎿嶄綔"
-          min-width="310"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaDepartmentWindow.open('缂栬緫閮ㄩ棬', row)" icon="el-icon-edit" v-permissions="['system:department:update']">缂栬緫</el-button>
-            <el-button type="text" @click="$refs.operaDepartmentWindow.open('鏂板缓涓嬬骇閮ㄩ棬', null, row)" icon="el-icon-edit" v-permissions="['system:department:create']">鏂板缓涓嬬骇閮ㄩ棬</el-button>
-            <el-button type="text" @click="$refs.departmentUserWindow.open(row.id, row.name)" icon="el-icon-user-solid" v-permissions="['system:department:queryUsers']">鏌ョ湅浜哄憳</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:department:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaDepartmentWindow ref="operaDepartmentWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-    <!-- 鏌ョ湅浜哄憳 -->
-    <DepartmentUserWindow ref="departmentUserWindow"/>
-  </TableLayout>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-import { fetchTree } from '@/api/system/department'
-import BaseTable from '@/components/base/BaseTable'
-import OperaDepartmentWindow from '@/components/system/department/OperaDepartmentWindow'
-import DepartmentUserWindow from '@/components/system/department/DepartmentUserWindow'
-export default {
-  name: 'SystemDepartment',
-  extends: BaseTable,
-  components: { DepartmentUserWindow, OperaDepartmentWindow, TableLayout },
-  data () {
-    return {
-      // 鎼滅储
-      searchForm: {
-        name: ''
-      }
-    }
-  },
-  methods: {
-    // 鏌ヨ鏁版嵁
-    handlePageChange () {
-      this.tableData.list.splice(0, this.tableData.list.length)
-      this.isWorking.search = true
-      fetchTree()
-        .then(records => {
-          this.tableData.list = records
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.search = false
-        })
-    }
-  },
-  created () {
-    this.config({
-      module: '閮ㄩ棬',
-      api: '/system/department'
-    })
-    this.search()
-  }
-}
-</script>
-<style lang="scss" scoped>
-.table-layout {
-  /deep/ .table-content {
-    margin-top: 0;
-  }
-}
-</style>
diff --git a/platform/src/views/system/dict.vue b/platform/src/views/system/dict.vue
deleted file mode 100644
index 5c67584..0000000
--- a/platform/src/views/system/dict.vue
+++ /dev/null
@@ -1,99 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:dict:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="瀛楀吀缂栫爜" prop="code">
-        <el-input v-model="searchForm.code" v-trim placeholder="璇疯緭鍏ュ瓧鍏哥紪鐮�" @keypress.enter.native="search"/>
-      </el-form-item>
-      <el-form-item label="瀛楀吀鍚嶇О" prop="name">
-        <el-input v-model="searchForm.name" v-trim placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" @keypress.enter.native="search"/>
-      </el-form-item>
-      <section>
-        <el-button type="primary" @click="search">鎼滅储</el-button>
-        <el-button @click="reset">閲嶇疆</el-button>
-      </section>
-    </el-form>
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['system:dict:create', 'system:dict:delete']">
-        <li><el-button type="primary" @click="$refs.operaDictWindow.open('鏂板缓瀛楀吀')" icon="el-icon-plus" v-permissions="['system:dict:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:dict:delete']">鍒犻櫎</el-button></li>
-      </ul>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        :default-sort = "{prop: 'createTime', order: 'descending'}"
-        stripe
-        @selection-change="handleSelectionChange"
-        @sort-change="handleSortChange"
-      >
-        <el-table-column type="selection" fixed="left" width="55"></el-table-column>
-        <el-table-column prop="code" label="瀛楀吀缂栫爜" fixed="left" min-width="100px"></el-table-column>
-        <el-table-column prop="name" label="瀛楀吀鍚嶇О" fixed="left" min-width="100px"></el-table-column>
-        <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
-        <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px" sortable="custom" sort-by="dict.CREATE_TIME"></el-table-column>
-        <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column
-          v-if="containPermissions(['system:dict:update', 'system:dict:delete'])"
-          label="鎿嶄綔"
-          min-width="210"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaDictWindow.open('缂栬緫瀛楀吀', row)" icon="el-icon-edit" v-permissions="['system:dict:update']">缂栬緫</el-button>
-            <el-button type="text" @click="$refs.dictDataManagerWindow.open(row.id, row.name)" icon="el-icon-edit" v-permissions="['system:dict:update']">鏁版嵁绠$悊</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:dict:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      ></pagination>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaDictWindow ref="operaDictWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-    <!-- 鏁版嵁绠$悊 -->
-    <DictDataManagerWindow ref="dictDataManagerWindow"/>
-  </TableLayout>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import OperaDictWindow from '@/components/system/dict/OperaDictWindow'
-import DictDataManagerWindow from '@/components/system/dict/DictDataManagerWindow'
-export default {
-  name: 'SystemDict',
-  extends: BaseTable,
-  components: { DictDataManagerWindow, OperaDictWindow, TableLayout, Pagination },
-  data () {
-    return {
-      // 鎼滅储
-      searchForm: {
-        code: '',
-        name: ''
-      }
-    }
-  },
-  created () {
-    this.config({
-      module: '瀛楀吀',
-      api: '/system/dict',
-      sorts: [{
-        property: 'dict.CREATE_TIME',
-        direction: 'DESC'
-      }]
-    })
-    this.search()
-  }
-}
-</script>
diff --git a/platform/src/views/system/loginLog.vue b/platform/src/views/system/loginLog.vue
deleted file mode 100644
index 617ddca..0000000
--- a/platform/src/views/system/loginLog.vue
+++ /dev/null
@@ -1,130 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:loginLog:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鐧诲綍鐢ㄦ埛鍚�" prop="loginUsername">
-        <el-input v-model="searchForm.loginUsername" placeholder="璇疯緭鍏ョ櫥褰曠敤鎴峰悕" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐧诲綍IP" prop="ip">
-        <el-input v-model="searchForm.ip" placeholder="璇疯緭鍏ョ櫥褰旾P" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏈嶅姟鍣↖P" prop="serverIp">
-        <el-input v-model="searchForm.serverIp" placeholder="璇疯緭鍏ユ湇鍔″櫒IP" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鏄惁鐧诲綍鎴愬姛" prop="success">
-        <el-select v-model="searchForm.success" placeholder="璇烽�夋嫨鏄惁鐧诲綍鐘舵��" clearable @change="search">
-          <el-option value="true" label="鐧诲綍鎴愬姛"/>
-          <el-option value="false" label="鐧诲綍澶辫触"/>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="鐧诲綍鏃堕棿" prop="loginTime">
-        <el-date-picker
-          v-model="searchDateRange"
-          type="datetimerange"
-          range-separator="鑷�"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          start-placeholder="寮�濮嬫椂闂�"
-          end-placeholder="缁撴潫鏃堕棿"
-          @change="handleSearchTimeChange"
-        ></el-date-picker>
-      </el-form-item>
-      <section>
-        <el-button type="primary" @click="search">鎼滅储</el-button>
-        <el-button type="primary" :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button>
-        <el-button @click="reset">閲嶇疆</el-button>
-      </section>
-    </el-form>
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        stripe
-        :default-sort="{prop: 'loginTime', order: 'descending'}"
-        @sort-change="handleSortChange"
-      >
-        <el-table-column prop="loginUsername" label="鐧诲綍鐢ㄦ埛鍚�" min-width="100px"></el-table-column>
-        <el-table-column prop="ip" label="鐧诲綍IP" min-width="120px"></el-table-column>
-        <el-table-column prop="location" label="鐧诲綍鍦板潃" min-width="160px"></el-table-column>
-        <el-table-column prop="clientInfo" label="瀹㈡埛绔�" min-width="160px"></el-table-column>
-        <el-table-column prop="osInfo" label="鎿嶄綔绯荤粺" min-width="100px"></el-table-column>
-        <el-table-column prop="platform" label="鐧诲綍骞冲彴" min-width="100px"></el-table-column>
-        <el-table-column prop="loginTime" label="鐧诲綍鏃堕棿" min-width="160px" sortable="custom" sort-by="LOGIN_TIME"></el-table-column>
-        <el-table-column prop="systemVersion" label="绯荤粺鐗堟湰" min-width="100px"></el-table-column>
-        <el-table-column prop="serverIp" label="鏈嶅姟鍣↖P" min-width="120px"></el-table-column>
-        <el-table-column prop="success" label="鐘舵��" min-width="100px">
-          <template slot-scope="{row}">
-            {{row.success | statusText}}
-          </template>
-        </el-table-column>
-        <el-table-column prop="reason" label="澶辫触鍘熷洜" min-width="160px"></el-table-column>
-      </el-table>
-      <pagination
-          @size-change="handleSizeChange"
-          @current-change="handlePageChange"
-          :pagination="tableData.pagination"
-      ></pagination>
-    </template>
-  </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-
-export default {
-  name: 'SystemLoginLog',
-  extends: BaseTable,
-  components: { TableLayout, Pagination },
-  data () {
-    return {
-      // 鎼滅储鏃堕棿鑼冨洿
-      searchDateRange: [],
-      // 鎼滅储
-      searchForm: {
-        loginUsername: '',
-        ip: '',
-        serverIp: '',
-        success: '',
-        startTime: null,
-        endTime: null
-      }
-    }
-  },
-  filters: {
-    // 鐧诲綍鐘舵��
-    statusText (value) {
-      if (value) {
-        return '鐧诲綍鎴愬姛'
-      }
-      return '鐧诲綍澶辫触'
-    }
-  },
-  methods: {
-    // 鏃堕棿鎼滅储鑼冨洿鍙樺寲
-    handleSearchTimeChange (value) {
-      this.searchForm.startTime = null
-      this.searchForm.endTime = null
-      if (value != null) {
-        this.searchForm.startTime = value[0]
-        this.searchForm.endTime = value[1]
-      }
-      this.search()
-    }
-  },
-  created () {
-    this.config({
-      module: '鐧诲綍鏃ュ織',
-      api: '/system/loginLog',
-      'field.id': 'id',
-      'field.main': 'id',
-      sorts: [{
-        property: 'LOGIN_TIME',
-        direction: 'DESC'
-      }]
-    })
-    this.search()
-  }
-}
-</script>
diff --git a/platform/src/views/system/menu.vue b/platform/src/views/system/menu.vue
deleted file mode 100644
index 466808d..0000000
--- a/platform/src/views/system/menu.vue
+++ /dev/null
@@ -1,232 +0,0 @@
-<script src="../../api/system/dictData.js"></script>
-<template>
-  <TableLayout class="menu-layout" :permissions="['system:menu:query']">
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['system:menu:create', 'system:menu:delete', 'system:menu:sort']">
-        <li><el-button type="primary" @click="$refs.operaMenuWindow.open('鏂板缓涓�绾ц彍鍗�', { type: '0' })" icon="el-icon-plus" v-permissions="['system:menu:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:menu:delete']">鍒犻櫎</el-button></li>
-        <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">涓婄Щ</el-button></li>
-        <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">涓嬬Щ</el-button></li>
-      </ul>
-      <el-table
-        ref="table"
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-        row-key="id"
-        stripe
-        :default-expand-all="false"
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" width="55" fixed="left"></el-table-column>
-        <el-table-column prop="name" label="鑿滃崟鍚嶇О"  fixed="left" min-width="160px"></el-table-column>
-        <el-table-column prop="icon" label="鍥炬爣" min-width="80px" class-name="table-column-icon">
-          <template slot-scope="{row}">
-            <i v-if="row.icon != null && row.icon !== ''" :class="{[row.icon]: true}"></i>
-            <template v-else>鏈缃�</template>
-          </template>
-        </el-table-column>
-        <el-table-column prop="path" label="璁块棶璺緞" min-width="140px"></el-table-column>
-        <el-table-column prop="remark" label="澶囨敞" min-width="120px"></el-table-column>
-        <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column prop="disabled" label="鏄惁鍚敤" min-width="80px">
-          <template slot-scope="{row}">
-            <el-switch v-model="row.disabled" :active-value="false" :inactive-value="true" @change="switchDisabled(row)"/>
-          </template>
-        </el-table-column>
-        <el-table-column
-          v-if="containPermissions(['system:menu:update', 'system:menu:create', 'system:menu:delete'])"
-          label="鎿嶄綔"
-          min-width="220"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" icon="el-icon-edit" @click="$refs.operaMenuWindow.open('缂栬緫鑿滃崟', { ...row, type: 0 })" v-permissions="['system:menu:update']">缂栬緫</el-button>
-            <el-button type="text" icon="el-icon-plus" @click="$refs.operaMenuWindow.open('鏂板缓瀛愯彍鍗�', null, {...row, type: 0})" v-permissions="['system:menu:create']">鏂板缓瀛愯彍鍗�</el-button>
-            <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:menu:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaMenuWindow ref="operaMenuWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-  </TableLayout>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import OperaMenuWindow from '@/components/system/menu/OperaMenuWindow'
-import { fetchTree, updateStatus, sort } from '@/api/system/menu'
-export default {
-  name: 'SystemMenu',
-  extends: BaseTable,
-  components: { OperaMenuWindow, TableLayout },
-  data () {
-    return {
-      // 鏄惁姝e湪澶勭悊涓�
-      isWorking: {
-        sort: false
-      }
-    }
-  },
-  methods: {
-    // 鏌ヨ鏁版嵁
-    handlePageChange () {
-      this.isWorking.search = true
-      fetchTree()
-        .then(records => {
-          this.tableData.list = records
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.search = false
-        })
-    },
-    // 鎺掑簭
-    sort (direction) {
-      if (this.isWorking.sort) {
-        return
-      }
-      if (this.tableData.selectedRows.length === 0) {
-        this.$tip.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
-        return
-      }
-      if (this.tableData.selectedRows.length > 1) {
-        this.$tip.warning('鎺掑簭鏃朵粎鍏佽閫夋嫨涓�鏉℃暟鎹�')
-        return
-      }
-      const menuId = this.tableData.selectedRows[0].id
-      // 鎵惧埌鑿滃崟鑼冨洿
-      let menuPool
-      for (const rootMenu of this.tableData.list) {
-        const parent = this.__findParent(menuId, rootMenu)
-        if (parent != null) {
-          menuPool = parent.children
-        }
-      }
-      menuPool = menuPool || this.tableData.list
-      const menuIndex = menuPool.findIndex(menu => menu.id === menuId)
-      // 涓婄Щ鏍¢獙
-      if (direction === 'top' && menuIndex === 0) {
-        this.$tip.warning('鑿滃崟宸插埌椤堕儴')
-        return
-      }
-      // 涓嬬Щ鏍¢獙
-      if (direction === 'bottom' && menuIndex === menuPool.length - 1) {
-        this.$tip.warning('鑿滃崟宸插埌搴曢儴')
-        return
-      }
-      this.isWorking.sort = true
-      sort({
-        id: this.tableData.selectedRows[0].id,
-        direction
-      })
-        .then(() => {
-          if (direction === 'top') {
-            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex - 1, 1)[0])
-          } else {
-            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex + 1, 1)[0])
-          }
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.sort = false
-        })
-    },
-    // 鍚敤/绂佺敤鑿滃崟
-    switchDisabled (row) {
-      if (!row.disabled) {
-        this.__updateMenuStatus(row)
-        return
-      }
-      this.$dialog.disableConfirm(`纭绂佺敤 ${row.name} 鑿滃崟鍚楋紵`)
-        .then(() => {
-          this.__updateMenuStatus(row)
-        }).catch(() => {
-          row.disabled = !row.disabled
-        })
-    },
-    // 鏌ヨ鐖惰妭鐐�
-    __findParent (id, parent) {
-      if (parent.children === 0) {
-        return
-      }
-      for (const menu of parent.children) {
-        if (menu.id === id) {
-          return parent
-        }
-        if (menu.children.length > 0) {
-          const m = this.__findParent(id, menu)
-          if (m != null) {
-            return m
-          }
-        }
-      }
-      return null
-    },
-    // 淇敼鑿滃崟鐘舵��
-    __updateMenuStatus (row) {
-      updateStatus({
-        id: row.id,
-        parentId: row.parentId,
-        disabled: row.disabled
-      })
-        .then(() => {
-          this.$tip.apiSuccess('淇敼鎴愬姛')
-        })
-        .catch(e => {
-          row.disabled = !row.disabled
-          this.$tip.apiFailed(e)
-        })
-    }
-  },
-  created () {
-    this.config({
-      module: '鑿滃崟',
-      api: '/system/menu'
-    })
-    this.search()
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "@/assets/style/variables.scss";
-.menu-layout {
-  /deep/ .table-content {
-    margin-top: 0;
-  }
-}
-// 鍥炬爣鍒�
-.table-column-icon {
-  // element-ui鍥炬爣
-  i {
-    background-color: $primary-color;
-    opacity: 0.72;
-    font-size: 20px;
-    color: #fff;
-    padding: 4px;
-    border-radius: 50%;
-  }
-  // 鑷畾涔夊浘鏍�
-  [class^="eva-icon-"] {
-    width: 20px;
-    height: 20px;
-    background-size: 16px;
-    vertical-align: middle;
-  }
-}
-</style>
diff --git a/platform/src/views/system/menuCom.vue b/platform/src/views/system/menuCom.vue
deleted file mode 100644
index 6dd790e..0000000
--- a/platform/src/views/system/menuCom.vue
+++ /dev/null
@@ -1,231 +0,0 @@
-<template>
-    <TableLayout class="menu-layout" :permissions="['system:menu:query']">
-        <!-- 琛ㄦ牸鍜屽垎椤� -->
-        <template v-slot:table-wrap>
-            <ul class="toolbar" v-permissions="['system:menu:create', 'system:menu:delete', 'system:menu:sort']">
-                <li><el-button type="primary" @click="$refs.OperaMenuComWindow.open('鏂板缓涓�绾ц彍鍗�')" icon="el-icon-plus" v-permissions="['system:menu:create']">鏂板缓</el-button></li>
-                <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:menu:delete']">鍒犻櫎</el-button></li>
-                <li><el-button @click="sort('top')" :loading="isWorking.sort" icon="el-icon-sort-up" v-permissions="['system:menu:sort']">涓婄Щ</el-button></li>
-                <li><el-button @click="sort('bottom')" :loading="isWorking.sort" icon="el-icon-sort-down" v-permissions="['system:menu:sort']">涓嬬Щ</el-button></li>
-            </ul>
-            <el-table
-                ref="table"
-                v-loading="isWorking.search"
-                :data="tableData.list"
-                :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-                row-key="id"
-                stripe
-                :default-expand-all="false"
-                @selection-change="handleSelectionChange"
-            >
-                <el-table-column type="selection" width="55" fixed="left"></el-table-column>
-                <el-table-column prop="name" label="鑿滃崟鍚嶇О"  fixed="left" min-width="160px"></el-table-column>
-                <el-table-column prop="icon" label="鍥炬爣" min-width="80px" class-name="table-column-icon">
-                    <template slot-scope="{row}">
-                        <i v-if="row.icon != null && row.icon !== ''" :class="{[row.icon]: true}"></i>
-                        <template v-else>鏈缃�</template>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="path" label="璁块棶璺緞" min-width="140px"></el-table-column>
-                <el-table-column prop="remark" label="澶囨敞" min-width="120px"></el-table-column>
-                <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-                    <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-                </el-table-column>
-                <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px"></el-table-column>
-                <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
-                    <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-                </el-table-column>
-                <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
-                <el-table-column prop="disabled" label="鏄惁鍚敤" min-width="80px">
-                    <template slot-scope="{row}">
-                        <el-switch v-model="row.disabled" :active-value="false" :inactive-value="true" @change="switchDisabled(row)"/>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                    v-if="containPermissions(['system:menu:update', 'system:menu:create', 'system:menu:delete'])"
-                    label="鎿嶄綔"
-                    min-width="220"
-                    fixed="right"
-                >
-                    <template slot-scope="{row}">
-                        <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMenuComWindow.open('缂栬緫鑿滃崟', {...row, type: 1})" v-permissions="['system:menu:update']">缂栬緫</el-button>
-                        <el-button type="text" icon="el-icon-plus" @click="$refs.OperaMenuComWindow.open('鏂板缓瀛愯彍鍗�', null, {...row, type: 1})" v-permissions="['system:menu:create']">鏂板缓瀛愯彍鍗�</el-button>
-                        <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:menu:delete']">鍒犻櫎</el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-        </template>
-        <!-- 鏂板缓/淇敼 -->
-        <OperaMenuComWindow ref="OperaMenuComWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-    </TableLayout>
-</template>
-
-<script>
-    import TableLayout from '@/layouts/TableLayout'
-    import BaseTable from '@/components/base/BaseTable'
-    import OperaMenuComWindow from '@/components/system/menu/OperaMenuComWindow'
-    import { fetchTree1, updateStatus, sort } from '@/api/system/menu'
-    export default {
-        name: 'SystemMenu',
-        extends: BaseTable,
-        components: { OperaMenuComWindow, TableLayout },
-        data () {
-            return {
-                // 鏄惁姝e湪澶勭悊涓�
-                isWorking: {
-                    sort: false
-                }
-            }
-        },
-        methods: {
-            // 鏌ヨ鏁版嵁
-            handlePageChange () {
-                this.isWorking.search = true
-                fetchTree1()
-                    .then(records => {
-                        this.tableData.list = records
-                    })
-                    .catch(e => {
-                        this.$tip.apiFailed(e)
-                    })
-                    .finally(() => {
-                        this.isWorking.search = false
-                    })
-            },
-            // 鎺掑簭
-            sort (direction) {
-                if (this.isWorking.sort) {
-                    return
-                }
-                if (this.tableData.selectedRows.length === 0) {
-                    this.$tip.warning('璇烽�夋嫨涓�鏉℃暟鎹�')
-                    return
-                }
-                if (this.tableData.selectedRows.length > 1) {
-                    this.$tip.warning('鎺掑簭鏃朵粎鍏佽閫夋嫨涓�鏉℃暟鎹�')
-                    return
-                }
-                const menuId = this.tableData.selectedRows[0].id
-                // 鎵惧埌鑿滃崟鑼冨洿
-                let menuPool
-                for (const rootMenu of this.tableData.list) {
-                    const parent = this.__findParent(menuId, rootMenu)
-                    if (parent != null) {
-                        menuPool = parent.children
-                    }
-                }
-                menuPool = menuPool || this.tableData.list
-                const menuIndex = menuPool.findIndex(menu => menu.id === menuId)
-                // 涓婄Щ鏍¢獙
-                if (direction === 'top' && menuIndex === 0) {
-                    this.$tip.warning('鑿滃崟宸插埌椤堕儴')
-                    return
-                }
-                // 涓嬬Щ鏍¢獙
-                if (direction === 'bottom' && menuIndex === menuPool.length - 1) {
-                    this.$tip.warning('鑿滃崟宸插埌搴曢儴')
-                    return
-                }
-                this.isWorking.sort = true
-                sort({
-                    id: this.tableData.selectedRows[0].id,
-                    direction
-                })
-                    .then(() => {
-                        if (direction === 'top') {
-                            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex - 1, 1)[0])
-                        } else {
-                            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex + 1, 1)[0])
-                        }
-                    })
-                    .catch(e => {
-                        this.$tip.apiFailed(e)
-                    })
-                    .finally(() => {
-                        this.isWorking.sort = false
-                    })
-            },
-            // 鍚敤/绂佺敤鑿滃崟
-            switchDisabled (row) {
-                if (!row.disabled) {
-                    this.__updateMenuStatus(row)
-                    return
-                }
-                this.$dialog.disableConfirm(`纭绂佺敤 ${row.name} 鑿滃崟鍚楋紵`)
-                    .then(() => {
-                        this.__updateMenuStatus(row)
-                    }).catch(() => {
-                    row.disabled = !row.disabled
-                })
-            },
-            // 鏌ヨ鐖惰妭鐐�
-            __findParent (id, parent) {
-                if (parent.children === 0) {
-                    return
-                }
-                for (const menu of parent.children) {
-                    if (menu.id === id) {
-                        return parent
-                    }
-                    if (menu.children.length > 0) {
-                        const m = this.__findParent(id, menu)
-                        if (m != null) {
-                            return m
-                        }
-                    }
-                }
-                return null
-            },
-            // 淇敼鑿滃崟鐘舵��
-            __updateMenuStatus (row) {
-                updateStatus({
-                    id: row.id,
-                    parentId: row.parentId,
-                    disabled: row.disabled
-                })
-                    .then(() => {
-                        this.$tip.apiSuccess('淇敼鎴愬姛')
-                    })
-                    .catch(e => {
-                        row.disabled = !row.disabled
-                        this.$tip.apiFailed(e)
-                    })
-            }
-        },
-        created () {
-            this.config({
-                module: '鑿滃崟',
-                api: '/system/menu'
-            })
-            this.search()
-        }
-    }
-</script>
-
-<style lang="scss" scoped>
-    @import "@/assets/style/variables.scss";
-    .menu-layout {
-        /deep/ .table-content {
-            margin-top: 0;
-        }
-    }
-    // 鍥炬爣鍒�
-    .table-column-icon {
-        // element-ui鍥炬爣
-        i {
-            background-color: $primary-color;
-            opacity: 0.72;
-            font-size: 20px;
-            color: #fff;
-            padding: 4px;
-            border-radius: 50%;
-        }
-        // 鑷畾涔夊浘鏍�
-        [class^="eva-icon-"] {
-            width: 20px;
-            height: 20px;
-            background-size: 16px;
-            vertical-align: middle;
-        }
-    }
-</style>
diff --git a/platform/src/views/system/monitor.vue b/platform/src/views/system/monitor.vue
deleted file mode 100644
index 3b94040..0000000
--- a/platform/src/views/system/monitor.vue
+++ /dev/null
@@ -1,308 +0,0 @@
-<template>
-  <Profile :permissions="['system:monitor:query']">
-    <div class="monitor">
-      <div class="toolbar">
-        <el-switch v-model="autoRefresh" @change="changeAutoRefresh"/><label>{{autoRefresh | autoRefreshText}}</label>
-      </div>
-      <ul>
-        <li class="wrap">
-          <h2>CPU<Light v-if="data != null" :warn="data.cpu.useRatio > 60" :danger="data.cpu.useRatio > 80"/></h2>
-          <div>
-            <dl>
-              <dt>鐗╃悊鏍告暟</dt>
-              <dd><Value :data="data" prop="cpu.physicalCount"/></dd>
-            </dl>
-            <dl>
-              <dt>閫昏緫鏍告暟</dt>
-              <dd><Value :data="data" prop="cpu.logicalCount"/></dd>
-            </dl>
-            <dl class="important">
-              <dt>褰撳墠浣跨敤鐜�</dt>
-              <dd><Value :data="data" prop="cpu.useRatio" :handler="keep2decimals" suffix="%"/></dd>
-            </dl>
-            <dl>
-              <dt>褰撳墠绌洪棽鐜�</dt>
-              <dd><Value :data="data" prop="cpu.freeRatio" :handler="keep2decimals" suffix="%"/></dd>
-            </dl>
-          </div>
-        </li>
-        <li class="wrap">
-          <h2>鍐呭瓨<Light v-if="data != null" :warn="data.memory.useRatio > 60" :danger="data.memory.useRatio > 80"/></h2>
-          <div>
-            <dl>
-              <dt>鎬荤┖闂�</dt>
-              <dd><Value :data="data" prop="memory.size" suffix="G" :handler="toG"/></dd>
-            </dl>
-            <dl>
-              <dt>绌洪棽绌洪棿</dt>
-              <dd><Value :data="data" prop="memory.freeSpace" suffix="G" :handler="toG"/></dd>
-            </dl>
-            <dl class="important">
-              <dt>宸茬敤绌洪棿</dt>
-              <dd><Value :data="data" prop="memory.usedSpace" suffix="G" :handler="toG"/></dd>
-            </dl>
-            <dl class="important">
-              <dt>浣跨敤鐜�</dt>
-              <dd><Value :data="data" prop="memory.useRatio" suffix="%" :handler="keep2decimals"/></dd>
-            </dl>
-          </div>
-        </li>
-        <li class="wrap">
-          <h2>JVM<Light v-if="data != null" :warn="data.jvm.memory.useRatio > 60" :danger="data.jvm.memory.useRatio > 80"/></h2>
-          <div>
-            <dl>
-              <dt>瀹夎璺緞</dt>
-              <dd><Value :data="data" prop="jvm.home"/></dd>
-            </dl>
-            <dl>
-              <dt>鐗堟湰</dt>
-              <dd><Value :data="data" prop="jvm.version"/></dd>
-            </dl>
-            <dl>
-              <dt>鍚姩鏃堕棿</dt>
-              <dd><Value :data="data" prop="jvm.bootTime"/></dd>
-            </dl>
-            <dl>
-              <dt>杩愯鏃堕暱</dt>
-              <dd><Value :data="data" prop="jvm.runtime"/></dd>
-            </dl>
-            <dl>
-              <dt>鎬荤┖闂�</dt>
-              <dd><Value :data="data" prop="jvm.memory.size" suffix="M" :handler="keep2decimals"/></dd>
-            </dl>
-            <dl>
-              <dt>绌洪棽绌洪棿</dt>
-              <dd><Value :data="data" prop="jvm.memory.freeSpace" suffix="M" :handler="keep2decimals"/></dd>
-            </dl>
-            <dl class="important">
-              <dt>宸茬敤绌洪棿</dt>
-              <dd><Value :data="data" prop="jvm.memory.usedSpace" suffix="M" :handler="keep2decimals"/></dd>
-            </dl>
-            <dl class="important">
-              <dt>浣跨敤鐜�</dt>
-              <dd><Value :data="data" prop="jvm.memory.useRatio" suffix="%" :handler="keep2decimals"/></dd>
-            </dl>
-          </div>
-        </li>
-        <li class="wrap">
-          <h2>鏈嶅姟鍣�</h2>
-          <div>
-            <dl>
-              <dt>鎿嶄綔绯荤粺</dt>
-              <dd><Value :data="data" prop="osName"/></dd>
-            </dl>
-            <dl>
-              <dt>绯荤粺鐗堟湰</dt>
-              <dd><Value :data="data" prop="osVersion"/></dd>
-            </dl>
-            <dl>
-              <dt>绯荤粺鏋舵瀯</dt>
-              <dd><Value :data="data" prop="osArch"/></dd>
-            </dl>
-            <dl class="important">
-              <dt>IP鍦板潃</dt>
-              <dd><Value :data="data" prop="ip"/></dd>
-            </dl>
-            <dl>
-              <dt>MAC鍦板潃</dt>
-              <dd><Value :data="data" prop="mac"/></dd>
-            </dl>
-            <dl>
-              <dt>鏈嶅姟鍣ㄦ椂闂�</dt>
-              <dd><Value :data="data" prop="currentTime"/></dd>
-            </dl>
-          </div>
-        </li>
-      </ul>
-      <div class="wrap">
-        <h2>纾佺洏淇℃伅</h2>
-        <el-table :data="data ? data.disks : []" v-loading="loading">
-          <el-table-column prop="name" label="纾佺洏鍚嶇О"/>
-          <el-table-column prop="dir" label="纾佺洏璺緞"/>
-          <el-table-column prop="fsType" label="鏂囦欢绯荤粺"/>
-          <el-table-column prop="size" label="鎬荤┖闂�">
-            <template slot-scope="{row}">
-              {{toG(row.size)}}G
-            </template>
-          </el-table-column>
-          <el-table-column prop="freeSpace" label="鍙敤绌洪棿">
-            <template slot-scope="{row}">
-              {{toG(row.freeSpace)}}G
-            </template>
-          </el-table-column>
-          <el-table-column prop="usedSpace" label="宸茬敤绌洪棿">
-            <template slot-scope="{row}">
-              <label class="important">{{toG(row.usedSpace)}}G</label>
-            </template>
-          </el-table-column>
-          <el-table-column prop="useRatio" label="宸茬敤鍗犳瘮">
-            <template slot-scope="{row}">
-              <label class="important">{{keep2decimals(row.useRatio)}}%</label>
-            </template>
-          </el-table-column>
-          <el-table-column>
-            <template slot-scope="{row}">
-              <Light :warn="row.useRatio > 60" :danger="row.useRatio > 80" :mini="true"/>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-    </div>
-  </Profile>
-</template>
-
-<script>
-import { getSystemInfo } from '@/api/system/monitor'
-import Value from '@/components/common/Value'
-import Light from '@/components/common/Light'
-import Profile from '../../components/common/Profile'
-
-export default {
-  name: 'SystemMonitor',
-  components: { Profile, Light, Value },
-  data () {
-    return {
-      // 鍔犺浇涓�
-      loading: false,
-      // 鑷姩鍒锋柊鏍囪瘑
-      autoRefresh: false,
-      // 鏁版嵁
-      data: null,
-      // 鑷姩鍒锋柊瀹氭椂鍣�
-      interval: null
-    }
-  },
-  filters: {
-    autoRefreshText (value) {
-      if (value) {
-        return '宸插紑鍚嚜鍔ㄥ埛鏂�'
-      }
-      return '宸插叧闂嚜鍔ㄥ埛鏂�'
-    }
-  },
-  methods: {
-    // 鍒囨崲鑷姩鍒锋柊
-    changeAutoRefresh (value) {
-      if (this.interval != null) {
-        clearInterval(this.interval)
-      }
-      if (value) {
-        this.getSystemInfo()
-        this.interval = setInterval(() => {
-          this.getSystemInfo()
-        }, 3000)
-      }
-    },
-    // 鑾峰彇绯荤粺淇℃伅
-    getSystemInfo () {
-      if (this.loading) {
-        return
-      }
-      this.loading = true
-      getSystemInfo()
-        .then(data => {
-          this.data = data
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.loading = false
-        })
-    },
-    // 鍗曚綅杞负G
-    toG (value) {
-      return Math.round(value / 1024 * 100) / 100
-    },
-    // 杞负姣旂巼
-    keep2decimals (value) {
-      return Math.round(value * 100) / 100
-    }
-  },
-  beforeRouteLeave (from, to, next) {
-    clearInterval(this.interval)
-    next()
-  },
-  created () {
-    this.getSystemInfo()
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-.monitor {
-  padding: 20px 20px;
-}
-// 宸ュ叿鏍�
-.toolbar {
-  margin-bottom: 12px;
-  background: #fff;
-  padding: 8px 16px;
-  label {
-    font-size: 12px;
-    margin-left: 8px;
-    color: #999;
-  }
-}
-ul {
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: space-between;
-  li {
-    width: 49.5%;
-    min-height: 200px;
-    flex-shrink: 0;
-  }
-}
-// 淇℃伅妯″潡
-.wrap {
-  background: #fff;
-  box-shadow: 2px 2px 10px -5px #999;
-  border-radius: 8px;
-  margin-bottom: 16px;
-  h2 {
-    border-bottom: 1px solid #eee;
-    font-size: 18px;
-    font-weight: normal;
-    line-height: 40px;
-    padding: 0 16px;
-    color: #555;
-    position: relative;
-    .light {
-      position: absolute;
-      top: 12px;
-      right: 12px;
-    }
-  }
-  & > div {
-    padding: 0 16px;
-    font-size: 14px;
-    dl {
-      display: flex;
-      dt {
-        width: 80px;
-        text-align: right;
-        flex-shrink: 0;
-        color: #999;
-      }
-      dd {
-        width: 100%;
-        margin: 0;
-        padding-left: 12px;
-        color: #555;
-        overflow: hidden;
-      }
-    }
-  }
-}
-// 閲嶈淇℃伅
-.important {
-  color: $primary-color;
-  font-weight: bold;
-  & > dd > div {
-    color: $primary-color;
-    font-weight: bold;
-  }
-}
-</style>
diff --git a/platform/src/views/system/permission.vue b/platform/src/views/system/permission.vue
deleted file mode 100644
index 76f35b3..0000000
--- a/platform/src/views/system/permission.vue
+++ /dev/null
@@ -1,96 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:permission:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鏉冮檺缂栫爜" prop="code">
-        <el-input v-model="searchForm.code" v-trim placeholder="璇疯緭鍏ユ潈闄愮紪鐮�" @keypress.enter.native="search"/>
-      </el-form-item>
-      <el-form-item label="鏉冮檺鍚嶇О" prop="name">
-        <el-input v-model="searchForm.name" v-trim placeholder="璇疯緭鍏ユ潈闄愬悕绉�" @keypress.enter.native="search"/>
-      </el-form-item>
-      <section>
-        <el-button type="primary" @click="search">鎼滅储</el-button>
-        <el-button @click="reset">閲嶇疆</el-button>
-      </section>
-    </el-form>
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['system:permission:create', 'system:permission:delete']">
-        <li><el-button type="primary" @click="$refs.operaPermissionWindow.open('鏂板缓绯荤粺鏉冮檺')" icon="el-icon-plus" v-permissions="['system:permission:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:permission:delete']">鍒犻櫎</el-button></li>
-      </ul>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        :default-sort = "{prop: 'createTime', order: 'descending'}"
-        stripe
-        @selection-change="handleSelectionChange"
-        @sort-change="handleSortChange"
-      >
-        <el-table-column type="selection" fixed="left" width="55"></el-table-column>
-        <el-table-column prop="code" label="鏉冮檺缂栫爜" fixed="left" min-width="200px"></el-table-column>
-        <el-table-column prop="name" label="鏉冮檺鍚嶇О" fixed="left" min-width="120px"></el-table-column>
-        <el-table-column prop="remark" label="鏉冮檺澶囨敞" min-width="120px"></el-table-column>
-        <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px" sortable="custom" sort-by="perm.CREATE_TIME"></el-table-column>
-        <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column
-          v-if="containPermissions(['system:permission:update', 'system:permission:delete'])"
-          label="鎿嶄綔"
-          min-width="130"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button v-if="!row.fixed" type="text" @click="$refs.operaPermissionWindow.open('缂栬緫绯荤粺鏉冮檺', row)" icon="el-icon-edit" v-permissions="['system:permission:update']">缂栬緫</el-button>
-            <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:permission:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      ></pagination>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaPermissionWindow ref="operaPermissionWindow" @success="handlePageChange"/>
-  </TableLayout>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import OperaPermissionWindow from '@/components/system/permission/OperaPermissionWindow'
-export default {
-  name: 'SystemPermission',
-  extends: BaseTable,
-  components: { OperaPermissionWindow, TableLayout, Pagination },
-  data () {
-    return {
-      // 鎼滅储
-      searchForm: {
-        code: '',
-        name: '',
-        remark: ''
-      }
-    }
-  },
-  created () {
-    this.config({
-      module: '鏉冮檺',
-      api: '/system/permission',
-      sorts: [{
-        property: 'perm.CREATE_TIME',
-        direction: 'DESC'
-      }]
-    })
-    this.search()
-  }
-}
-</script>
diff --git a/platform/src/views/system/position.vue b/platform/src/views/system/position.vue
deleted file mode 100644
index b2ef9a8..0000000
--- a/platform/src/views/system/position.vue
+++ /dev/null
@@ -1,93 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:position:query']">
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['system:position:create', 'system:position:delete']">
-        <li><el-button type="primary" @click="$refs.operaPositionWindow.open('鏂板缓宀椾綅')" icon="el-icon-plus" v-permissions="['system:position:create']">鏂板缓</el-button></li>
-        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['system:position:delete']">鍒犻櫎</el-button></li>
-      </ul>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-        row-key="id"
-        stripe
-        default-expand-all
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column type="selection" width="55" fixed="left"></el-table-column>
-        <el-table-column prop="name" label="宀椾綅鍚嶇О" fixed="left" min-width="200px"></el-table-column>
-        <el-table-column prop="code" label="宀椾綅缂栫爜" fixed="left" min-width="100px"></el-table-column>
-        <el-table-column prop="userCount" label="宀椾綅浜烘暟" min-width="100px"></el-table-column>
-        <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px">
-          <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
-        </el-table-column>
-        <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px"></el-table-column>
-        <el-table-column
-          v-if="containPermissions(['system:position:update', 'system:position:query', 'system:position:delete'])"
-          label="鎿嶄綔"
-          min-width="310"
-          fixed="right"
-        >
-          <template slot-scope="{row}">
-            <el-button type="text" @click="$refs.operaPositionWindow.open('缂栬緫宀椾綅', row)" icon="el-icon-edit" v-permissions="['system:position:update']">缂栬緫</el-button>
-            <el-button type="text" @click="$refs.operaPositionWindow.open('鏂板涓嬬骇宀椾綅', null, row)" icon="el-icon-edit" v-permissions="['system:position:update']">鏂板涓嬬骇宀椾綅</el-button>
-            <el-button type="text" @click="$refs.positionUserWindow.open(row.id, row.name)" icon="el-icon-user-solid" v-permissions="['system:position:queryUsers']">鏌ョ湅浜哄憳</el-button>
-            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:position:delete']">鍒犻櫎</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaPositionWindow ref="operaPositionWindow" @success="handlePageChange"/>
-    <!-- 浜哄憳绠$悊 -->
-    <PositionUserWindow ref="positionUserWindow"/>
-  </TableLayout>
-</template>
-
-<script>
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import OperaPositionWindow from '@/components/system/position/OperaPositionWindow'
-import PositionUserWindow from '@/components/system/position/PositionUserWindow'
-import { fetchTree } from '@/api/system/position'
-export default {
-  name: 'SystemPosition',
-  extends: BaseTable,
-  components: { PositionUserWindow, OperaPositionWindow, TableLayout },
-  methods: {
-    // 鏌ヨ鏁版嵁
-    handlePageChange () {
-      this.isWorking.search = true
-      fetchTree()
-        .then(records => {
-          this.tableData.list = records
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.search = false
-        })
-    }
-  },
-  created () {
-    this.config({
-      module: '宀椾綅',
-      api: '/system/position'
-    })
-    this.search()
-  }
-}
-</script>
-<style lang="scss" scoped>
-.table-layout {
-  /deep/ .table-content {
-    margin-top: 0;
-  }
-}
-</style>
diff --git a/platform/src/views/system/role.vue b/platform/src/views/system/role.vue
index 45cab31..779e53f 100644
--- a/platform/src/views/system/role.vue
+++ b/platform/src/views/system/role.vue
@@ -45,8 +45,12 @@
           min-width="270"
           fixed="right"
         >
+<<<<<<< HEAD
 <!--          v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)"-->
           <template slot-scope="{row}">
+=======
+          <template v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)" slot-scope="{row}">
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
             <el-button type="text" @click="$refs.operaRoleWindow.open('缂栬緫瑙掕壊', row)" icon="el-icon-edit" v-permissions="['system:role:update']">缂栬緫</el-button>
             <el-button type="text" @click="$refs.permissionConfigWindow.open(row)" v-permissions="['system:role:createRolePermission']">閰嶇疆鏉冮檺</el-button>
             <el-button type="text" @click="$refs.menuConfigWindow.open(row)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">鎺堟潈鑿滃崟</el-button>
diff --git a/platform/src/views/system/traceLog.vue b/platform/src/views/system/traceLog.vue
deleted file mode 100644
index c555d1c..0000000
--- a/platform/src/views/system/traceLog.vue
+++ /dev/null
@@ -1,254 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:traceLog:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-      <el-form-item label="鐢ㄦ埛濮撳悕" prop="userRealname">
-        <el-input v-model="searchForm.userRealname" placeholder="璇疯緭鍏ュ浐鍖栫敤鎴峰鍚�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="涓氬姟妯″潡" prop="operaModule">
-        <el-input v-model="searchForm.operaModule" placeholder="璇疯緭鍏ヤ笟鍔℃ā鍧�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="璇锋眰鍦板潃" prop="requestUri">
-        <el-input v-model="searchForm.requestUri" placeholder="璇疯緭鍏ヨ姹傚湴鍧�" @keypress.enter.native="search"></el-input>
-      </el-form-item>
-      <el-form-item label="鐘舵��" prop="status">
-        <el-select v-model="searchForm.status" clearable @change="search">
-          <el-option value="-1" label="鏈鐞�"/>
-          <el-option value="0" label="澶辫触"/>
-          <el-option value="1" label="鎴愬姛"/>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="寮傚父绛夌骇" prop="exceptionLevel">
-        <el-select v-model="searchForm.exceptionLevel" clearable @change="search">
-          <el-option value="10" label="楂�"/>
-          <el-option value="5" label="涓�"/>
-          <el-option value="0" label="浣�"/>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="鎿嶄綔鏃堕棿鑼冨洿">
-        <el-date-picker
-          v-model="searchDateRange"
-          type="datetimerange"
-          range-separator="鑷�"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          start-placeholder="寮�濮嬫椂闂�"
-          end-placeholder="缁撴潫鏃堕棿"
-          @change="handleSearchTimeChange"
-        ></el-date-picker>
-      </el-form-item>
-      <section>
-        <el-button type="primary" @click="search">鎼滅储</el-button>
-        <el-button type="primary" :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button>
-        <el-button @click="reset">閲嶇疆</el-button>
-      </section>
-    </el-form>
-    <div slot="space" class="status-bar">
-      <label class="status-normal">姝e父</label>
-      <label class="status-warn">璀﹀憡寮傚父(闇�鎺掓煡)</label>
-      <label class="status-danger">绯荤粺寮傚父(闇�淇)</label>
-    </div>
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        stripe
-        :default-sort="{prop: 'operaTime', order: 'descending'}"
-        :row-class-name="tableRowClassName"
-        @sort-change="handleSortChange"
-      >
-        <el-table-column prop="operaModule" label="涓氬姟妯″潡" min-width="100px"></el-table-column>
-        <el-table-column prop="operaRemark" label="鎿嶄綔璇存槑" min-width="100px"></el-table-column>
-        <el-table-column prop="requestMethod" label="璇锋眰鏂瑰紡" min-width="80px"></el-table-column>
-        <el-table-column prop="requestUri" label="璇锋眰鍦板潃" min-width="200px"></el-table-column>
-        <el-table-column prop="status" label="鐘舵��" min-width="80px">
-          <template slot-scope="{row}">
-            {{row.status | statusText}}
-          </template>
-        </el-table-column>
-        <el-table-column prop="requestParams" label="璇锋眰鍙傛暟" min-width="80px">
-          <template slot-scope="{row}">
-            <ColumnDetail v-if="row.requestParams != null" :content="row.requestParams" :limit="0"/>
-          </template>
-        </el-table-column>
-        <el-table-column prop="requestResult" label="璇锋眰缁撴灉" min-width="80px">
-          <template slot-scope="{row}">
-            <ColumnDetail v-if="row.requestResult != null" :content="row.requestResult"/>
-          </template>
-        </el-table-column>
-        <el-table-column prop="exceptionLevel" label="寮傚父绛夌骇" sortable="custom" sort-by="EXCEPTION_LEVEL" min-width="100px">
-          <template slot-scope="{row}">
-            {{row.exceptionLevel | exceptionLevelText}}
-          </template>
-        </el-table-column>
-        <el-table-column prop="exceptionStack" label="寮傚父淇℃伅" min-width="170px">
-          <template slot-scope="{row}">
-            <ColumnDetail v-if="row.exceptionStack != null" :content="row.exceptionStack" :button-type="getExceptionButtonType(row.exceptionLevel)"/>
-          </template>
-        </el-table-column>
-        <el-table-column prop="operaSpendTime" label="璇锋眰鑰楁椂(ms)" sortable="custom" sort-by="OPERA_SPEND_TIME" min-width="120px"></el-table-column>
-        <el-table-column prop="userRealname" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
-        <el-table-column prop="operaTime" label="鎿嶄綔鏃堕棿" sortable="custom" sort-by="OPERA_TIME" min-width="140px"></el-table-column>
-        <el-table-column prop="platform" label="鎿嶄綔骞冲彴" min-width="100px"></el-table-column>
-        <el-table-column prop="systemVersion" label="绯荤粺鐗堟湰" min-width="80px"></el-table-column>
-        <el-table-column prop="serverIp" label="澶勭悊鏈嶅姟鍣↖P" min-width="100px"></el-table-column>
-        <el-table-column prop="ip" label="鐢ㄦ埛IP" min-width="100px"></el-table-column>
-        <el-table-column prop="clientInfo" label="鐢ㄦ埛瀹㈡埛绔�" min-width="200px"></el-table-column>
-        <el-table-column prop="osInfo" label="鐢ㄦ埛鎿嶄綔绯荤粺" min-width="100px"></el-table-column>
-      </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      ></pagination>
-    </template>
-  </TableLayout>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import ColumnDetail from '../../components/common/ColumnDetail'
-
-export default {
-  name: 'SystemTraceLog',
-  extends: BaseTable,
-  components: { ColumnDetail, TableLayout, Pagination },
-  data () {
-    return {
-      // 鎼滅储鏃堕棿鍙嶈儍
-      searchDateRange: [],
-      // 鎼滅储
-      searchForm: {
-        userRealname: '',
-        operaModule: '',
-        requestUri: '',
-        status: null,
-        exceptionLevel: null,
-        startTime: null,
-        endTime: null
-      }
-    }
-  },
-  filters: {
-    // 鐘舵��
-    statusText (value) {
-      if (value === 1) {
-        return '鎴愬姛'
-      }
-      if (value === 0) {
-        return '澶辫触'
-      }
-      return '鏈鐞�'
-    },
-    // 寮傚父绛夌骇
-    exceptionLevelText (value) {
-      if (value == null) {
-        return ''
-      }
-      if (value === 0) {
-        return '浣�'
-      }
-      if (value === 5) {
-        return '涓�'
-      }
-      if (value === 10) {
-        return '楂�'
-      }
-      return '鏈煡'
-    }
-  },
-  methods: {
-    // 鎼滅储妗嗛噸缃�
-    reset () {
-      this.$refs.searchForm.resetFields()
-      this.searchDateRange = []
-      this.searchForm.startTime = null
-      this.searchForm.endTime = null
-      this.search()
-    },
-    // 鏍囪琛宑lass
-    tableRowClassName ({ row }) {
-      if (row.exceptionLevel === 5 || row.status === -1) {
-        return 'warning-log'
-      } else if (row.exceptionLevel === 10) {
-        return 'danger-log'
-      }
-      return ''
-    },
-    // 鑾峰彇寮傚父鏌ョ湅鎸夐挳绫诲瀷
-    getExceptionButtonType (level) {
-      if (level === 5) {
-        return 'warning'
-      }
-      if (level === 10) {
-        return 'danger'
-      }
-      return null
-    },
-    // 鏃堕棿鎼滅储鑼冨洿鍙樺寲
-    handleSearchTimeChange (value) {
-      this.searchForm.startTime = null
-      this.searchForm.endTime = null
-      if (value != null) {
-        this.searchForm.startTime = value[0]
-        this.searchForm.endTime = value[1]
-      }
-      this.search()
-    }
-  },
-  created () {
-    this.config({
-      api: '/system/traceLog',
-      sorts: [{
-        property: 'OPERA_TIME',
-        direction: 'DESC'
-      }]
-    })
-    this.search()
-  }
-}
-</script>
-
-<style scoped lang="scss">
-// 鐘舵�佹爮
-.status-bar {
-  padding: 0 16px;
-  [class^=status-] {
-    font-size: 13px;
-    margin-right: 12px;
-    line-height: 40px;
-    &::before {
-      position: relative;
-      top: 2px;
-      display: inline-block;
-      content: '';
-      width: 12px;
-      height: 12px;
-      border: 1px solid #ccc;
-      background: #fff;
-      margin-right: 6px;
-    }
-  }
-  .status-warn::before {
-    background-color: oldlace;
-    border-color: orange;
-  }
-  .status-danger::before {
-    background-color: #fdf0f0;
-    border-color: indianred;
-  }
-}
-/deep/ .table-content {
-  margin-top: 0;
-}
-// 璀﹀憡绾ф棩蹇�
-/deep/ .warning-log td {
-  background-color: oldlace !important;
-}
-// 鍗遍櫓绾ф棩蹇�
-/deep/ .danger-log td {
-  background-color: #fdf0f0 !important;
-}
-</style>
diff --git a/platform/src/views/system/user.vue b/platform/src/views/system/user.vue
deleted file mode 100644
index 6ebbe61..0000000
--- a/platform/src/views/system/user.vue
+++ /dev/null
@@ -1,161 +0,0 @@
-<template>
-  <TableLayout :permissions="['system:user:query']">
-    <!-- 鎼滅储琛ㄥ崟 -->
-    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline>
-<!--      <el-form-item label="鐢ㄦ埛鍚�" prop="username">-->
-<!--        <el-input v-model="searchForm.username" v-trim placeholder="璇疯緭鍏ョ敤鎴峰悕" @keypress.enter.native="search"/>-->
-<!--      </el-form-item>-->
-      <el-form-item label="濮撳悕" prop="realname">
-        <el-input v-model="searchForm.realname" v-trim placeholder="璇疯緭鍏�" @keypress.enter.native="search"/>
-      </el-form-item>
-<!--      <el-form-item label="鎵嬫満鍙风爜" prop="mobile">-->
-<!--        <el-input v-model="searchForm.mobile" v-trim placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" @keypress.enter.native="search"/>-->
-<!--      </el-form-item>-->
-<!--            <el-form-item label="鎵�灞為儴闂�" prop="rootDeptId">-->
-<!--        <DepartmentSelect v-model="searchForm.rootDeptId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" clearable/>-->
-<!--      </el-form-item>-->
-<!--      <el-form-item label="宀椾綅" prop="positionId">-->
-<!--        <PositionSelect v-model="searchForm.positionId" placeholder="璇烽�夋嫨宀椾綅" clearable/>-->
-<!--      </el-form-item>-->
-      <section>
-        <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button>
-        <el-button @click="reset">閲嶇疆</el-button>
-      </section>
-    </el-form>
-    <!-- 琛ㄦ牸鍜屽垎椤� -->
-    <template v-slot:table-wrap>
-      <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']">
-        <li v-permissions="['system:user:create']"><el-button type="primary" @click="$refs.operaUserWindow.open('鏂板璐﹀彿')">鏂板璐﹀彿</el-button></li>
-<!--        <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">鍒犻櫎</el-button></li>-->
-      </ul>
-<!--      @selection-change="handleSelectionChange"-->
-      <el-table
-        v-loading="isWorking.search"
-        :data="tableData.list"
-        :default-sort = "{prop: 'createTime', order: 'descending'}"
-        stripe
-        @sort-change="handleSortChange"
-      >
-        <el-table-column label="搴忓彿" width="80px">
-          <template slot-scope="scope">
-            <span>{{scope.$index + 1}}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="username" label="璐﹀彿" min-width="120px"></el-table-column>
-        <el-table-column prop="realname" label="濮撳悕" min-width="100px"></el-table-column>
-        <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="100px"></el-table-column>
-        <el-table-column prop="roles" label="瑙掕壊" min-width="160px" class-name="table-column-strings">
-          <template slot-scope="{row}">
-            <ul>
-              <li v-for="role in row.roles" :key="role.id">{{role.name}}</li>
-            </ul>
-          </template>
-        </el-table-column>
-        <el-table-column label="鍚敤鐘舵��" min-width="100px">
-          <template slot-scope="{row}">
-            <el-switch
-              @change="changeStatus($event, row)"
-              v-model="row.status"
-              active-color="#13ce66"
-              inactive-color="#ff4949"
-              :active-value="0"
-              :inactive-value="1">
-            </el-switch>
-          </template>
-        </el-table-column>
-        <el-table-column
-          v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])"
-          label="鎿嶄綔"
-          width="270"
-          fixed="right"
-        >
-          <template v-if="isAdmin || (row.id !== userInfo.id && row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}">
-            <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('缂栬緫鐢ㄦ埛', row)" v-permissions="['system:user:update']">缂栬緫</el-button>
-            <el-button type="text" @click="$refs.allocationEnterprises.open('鍒嗛厤浼佷笟', row)">鍒嗛厤浼佷笟</el-button>
-            <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">閰嶇疆瑙掕壊</el-button>
-            <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">閲嶇疆瀵嗙爜</el-button>
-<!--            <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">鍒犻櫎</el-button>-->
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        @size-change="handleSizeChange"
-        @current-change="handlePageChange"
-        :pagination="tableData.pagination"
-      ></pagination>
-    </template>
-    <!-- 鏂板缓/淇敼 -->
-    <OperaUserWindow ref="operaUserWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-    <!-- 閰嶇疆瑙掕壊 -->
-    <RoleConfigWindow ref="roleConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-    <!-- 閲嶇疆瀵嗙爜 -->
-    <ResetPwdWindow ref="resetPwdWindow"/>
-    <!--  鍒嗛厤浼佷笟  -->
-    <allocationEnterprises ref="allocationEnterprises" @success="handlePageChange(tableData.pagination.pageIndex)"/>
-  </TableLayout>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import OperaUserWindow from '@/components/system/user/OperaUserWindow'
-import allocationEnterprises from '@/components/system/user/allocationEnterprises'
-import RoleConfigWindow from '@/components/system/user/RoleConfigWindow'
-import ResetPwdWindow from '@/components/system/user/ResetPwdWindow'
-import DepartmentSelect from '@/components/common/DepartmentSelect'
-import PositionSelect from '@/components/common/PositionSelect'
-import { updUserStatus } from '@/api/system/user'
-
-export default {
-  name: 'SystemUser',
-  extends: BaseTable,
-  components: { allocationEnterprises, PositionSelect, DepartmentSelect, ResetPwdWindow, RoleConfigWindow, OperaUserWindow, TableLayout, Pagination },
-  data () {
-    return {
-      // 鎼滅储
-      searchForm: {
-        username: '', // 鍚嶅瓧
-        realname: '', // 濮撳悕
-        rootDeptId: null, // 閮ㄩ棬ID
-        positionId: null, // 宀椾綅ID
-        mobile: '' // 鎵嬫満鍙风爜
-      }
-    }
-  },
-  created () {
-    this.config({
-      module: '鐢ㄦ埛',
-      api: '/system/user',
-      'field.main': 'realname',
-      sorts: [{
-        property: 'CREATE_TIME',
-        direction: 'DESC'
-      }]
-    })
-    this.search()
-  },
-  methods: {
-    changeStatus(status, row) {
-      updUserStatus({
-        id: row.id,
-        status
-      }).then(res => {
-        this.search()
-      }).catch(err => {
-        row.status = row.status === 0 ? 1 : 0
-      })
-    }
-  }
-}
-</script>
-
-<style scoped lang="scss">
-@import "@/assets/style/variables.scss";
-// 鍒楄〃澶村儚澶勭悊
-.table-column-avatar {
-  img {
-    width: 48px;
-  }
-}
-</style>
diff --git a/platform/vue.config.js b/platform/vue.config.js
index c8c48d1..49cee89 100644
--- a/platform/vue.config.js
+++ b/platform/vue.config.js
@@ -3,7 +3,11 @@
 // const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length)
 module.exports = {
   publicPath: './',
+<<<<<<< HEAD
   outputDir: 'yyb_web',
+=======
+  outputDir: 'dest',
+>>>>>>> c421d2deeec5530d8060d8e06b5b86bb02e72dbf
   assetsDir: 'static',
   lintOnSave: false,
   devServer: {
diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java b/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
index 666cf0e..a62e8e9 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -82,6 +82,13 @@
         return ApiResponse.success(applyDetailService.findListForCompany(applyDetailPageDTO));
     }
 
+    @ApiOperation("鏌ヨ鍏ㄩ儴")
+    @PostMapping("/list")
+    @RequiresPermissions("business:applydetail:query")
+    public ApiResponse<List<ApplyDetail>> list (@RequestBody  ApplyDetail pageWrap) {
+        return ApiResponse.success(applyDetailService.findList(pageWrap));
+    }
+
     @ApiOperation("瀵煎嚭鍦ㄤ繚浜哄憳璇﹀崟Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applydetail:exportExcel")
diff --git a/server/company/src/main/java/com/doumee/api/business/CompanyController.java b/server/company/src/main/java/com/doumee/api/business/CompanyController.java
index 5687677..647fcd8 100644
--- a/server/company/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/company/src/main/java/com/doumee/api/business/CompanyController.java
@@ -3,6 +3,8 @@
 import com.doumee.api.BaseController;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
@@ -37,7 +39,6 @@
     @RequiresPermissions("business:company:create")
     public ApiResponse create(@RequestBody Company company) {
         companyService.create(company);
-        companyService.startSignAuth(company.getId());
         return ApiResponse.success(null);
     }
 
@@ -92,4 +93,14 @@
 
         return ApiResponse.success(companyService.findById(id));
     }
+
+    @ApiOperation("浼佷笟璇佷欢涓嬭浇")
+    @PostMapping("/exportFiles")
+    @RequiresPermissions("business:company:exportExcel")
+    public void exportFiles(@RequestBody Company company,HttpServletResponse response) {
+        if(company.getId() == null){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        companyService.exportFiles(company.getId(),response);
+    }
 }
diff --git a/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java b/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
index e5af4b1..f4f4e85 100644
--- a/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
+++ b/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
@@ -7,6 +7,7 @@
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.dto.DispatchUnitQueryDTO;
 import com.doumee.dao.business.dto.SaveDispatchUnitDTO;
 import com.doumee.dao.business.model.DispatchUnit;
@@ -119,6 +120,7 @@
     @PostMapping("/findListByDTO")
     @RequiresPermissions("business:dispatchunit:query")
     public ApiResponse<List<DispatchUnit>> findListByDTO (@RequestBody DispatchUnitQueryDTO dispatchUnitQueryDTO) {
+        dispatchUnitQueryDTO.setDataType(Constants.TWO);
         return ApiResponse.success(dispatchUnitService.findByDTO(dispatchUnitQueryDTO));
     }
 
diff --git a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
index ef55325..2d0296e 100644
--- a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
+++ b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -137,11 +137,17 @@
 
     @ApiOperation("娴嬭瘯瀹為檯閲戦")
     @GetMapping("/testFee")
-    public ApiResponse testFee(@RequestParam Integer id) {
+    public ApiResponse testFee(Integer id) {
         insuranceApplyService.updateApplyCurrentFee(id);
         return ApiResponse.success(null);
     }
 
 
+    @ApiOperation("娴嬭瘯鐢熸垚寰呯画淇濋�氱煡")
+    @GetMapping("/generateNotice")
+    public ApiResponse generateNotice() {
+        insuranceApplyService.generateNotice();
+        return ApiResponse.success(null);
+    }
 
 }
diff --git a/server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java b/server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java
index 9dfea83..5c20332 100644
--- a/server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java
+++ b/server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java
@@ -79,9 +79,11 @@
     @PostMapping("/findList")
     @RequiresPermissions("business:memberinsurance:query")
     public ApiResponse<List<MemberInsurance>> findList (@RequestBody MemberInsurance memberInsurance) {
-        return ApiResponse.success(memberInsuranceService.findList(memberInsurance));
+        return ApiResponse.success(memberInsuranceService.getList(memberInsurance));
     }
 
+
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:memberinsurance:exportExcel")
diff --git a/server/company/src/main/java/com/doumee/api/business/NoticesController.java b/server/company/src/main/java/com/doumee/api/business/NoticesController.java
index 42f845b..6d47a17 100644
--- a/server/company/src/main/java/com/doumee/api/business/NoticesController.java
+++ b/server/company/src/main/java/com/doumee/api/business/NoticesController.java
@@ -9,6 +9,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Notices;
+import com.doumee.dao.business.vo.ApplyNoticeVO;
 import com.doumee.service.business.NoticesService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -93,4 +94,22 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(noticesService.findById(id));
     }
+
+
+    @ApiOperation("鏌ヨ鎶曚繚鍗曟彁閱掓暟閲�")
+    @GetMapping("/getApplyNotice")
+    public ApiResponse<ApplyNoticeVO> getApplyNotice() {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        return ApiResponse.success(noticesService.getApplyNotice(loginUserInfo.getCompanyId()));
+    }
+
+    @ApiOperation("鎶曚繚鍗曞叧闂彁閱�")
+    @GetMapping("/closeApplyNotice")
+    public ApiResponse closeApplyNotice(@RequestParam Integer type) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        noticesService.closeApplyNotice(loginUserInfo.getCompanyId(),type);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
 }
diff --git a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
index b9d12c4..cccad8d 100644
--- a/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Solutions;
 import com.doumee.service.business.SolutionsService;
 import io.swagger.annotations.Api;
@@ -17,6 +18,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @author 姹熻箘韫�
@@ -85,10 +87,21 @@
     @ApiOperation("鍒楄〃鏌ヨ")
     @PostMapping("/list")
     @RequiresPermissions("business:solutions:query")
-    public ApiResponse<List<Solutions>> findList () {
-        return ApiResponse.success(solutionsService.findListForCompany());
+    public ApiResponse<List<Solutions>> findList (Solutions solutions) {
+        Integer dateType = Constants.TWO;
+        if(!Objects.isNull(solutions)&&!Objects.isNull(solutions.getDataType())){
+            dateType = solutions.getDataType();
+        }
+        return ApiResponse.success(solutionsService.findListForCompany(dateType));
     }
 
+    @ApiOperation("鏍规嵁鍘嗗彶鐗堟湰鏌ヨ褰撳墠鏈�鏂板惎鐢ㄧ増鏈�")
+    @GetMapping("/getNewVersion")
+    public ApiResponse<Solutions> getNewVersion (@RequestParam Integer solutionId) {
+        return ApiResponse.success(solutionsService.getNewVersion(solutionId));
+    }
+
+
 //    @ApiOperation("鍒楄〃鏌ヨ")
 //    @PostMapping("/page")
 //    public ApiResponse<List<Solutions>> findPage (@RequestBody Solutions solutions) {
diff --git a/server/company/src/main/java/com/doumee/api/system/SystemMenuController.java b/server/company/src/main/java/com/doumee/api/system/SystemMenuController.java
index 3461a1b..797483a 100644
--- a/server/company/src/main/java/com/doumee/api/system/SystemMenuController.java
+++ b/server/company/src/main/java/com/doumee/api/system/SystemMenuController.java
@@ -47,12 +47,20 @@
         return ApiResponse.success(systemMenuBiz.findTree(loginUserInfo.getId(),loginUserInfo.getType()));
     }
 
+//    @ApiOperation("鏌ヨ鍒楄〃鏍�")
+//    @PostMapping("/treeList")
+//    @RequiresPermissions("system:menu:query")
+//    public ApiResponse<List<SystemMenuListVO>> findTree () {
+//        LoginUserInfo loginUserInfo = this.getLoginUser();
+//        return ApiResponse.success(systemMenuBiz.findTreeByType(loginUserInfo.getType()));
+//    }
+
+
     @ApiOperation("鏌ヨ鍒楄〃鏍�")
-    @PostMapping("/treeList")
+    @PostMapping("/treeList/{type}")
     @RequiresPermissions("system:menu:query")
-    public ApiResponse<List<SystemMenuListVO>> findTree () {
-        LoginUserInfo loginUserInfo = this.getLoginUser();
-        return ApiResponse.success(systemMenuBiz.findTreeByType(loginUserInfo.getType()));
+    public ApiResponse<List<SystemMenuListVO>> treeList (@PathVariable Integer type) {
+        return ApiResponse.success(systemMenuBiz.findTreeByType(type));
     }
 
     @PreventRepeat
diff --git a/server/company/src/main/resources/application.yml b/server/company/src/main/resources/application.yml
index 01d793b..83ded24 100644
--- a/server/company/src/main/resources/application.yml
+++ b/server/company/src/main/resources/application.yml
@@ -6,7 +6,7 @@
 #  env: production
 server:
 #  port: 10022
-  port: 10025
+  port: 10031
 
 spring:
 #  application:git
diff --git a/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java b/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
index b2bdb4d..d931609 100644
--- a/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
@@ -67,13 +67,13 @@
         applyChagneDetailService.updateById(applyChagneDetail);
         return ApiResponse.success(null);
     }
-//
-@ApiOperation("鍒嗛〉鏌ヨ")
-@PostMapping("/page")
-@RequiresPermissions("business:applychagnedetail:query")
-public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) {
-    return ApiResponse.success(applyChagneDetailService.findPageForCompany(pageWrap));
-}
+    //
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:applychagnedetail:query")
+    public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) {
+        return ApiResponse.success(applyChagneDetailService.findPageForCompany(pageWrap));
+    }
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/list")
diff --git a/server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java b/server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java
index f1f6296..57780fc 100644
--- a/server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -83,7 +83,8 @@
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applydetail:exportExcel")
     public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(ApplyDetail.class).exportWithFirstAndEnd(applyDetailService.findPageForCompany(pageWrap).getRecords(), pageWrap.getModel().getCompanyName()+"_"+pageWrap.getModel().getSolutionName()+".xlsx","鍦ㄤ繚浜哄憳鍚嶅崟",null, response);
+        ExcelExporter.build(ApplyDetail.class).exportWithFirstAndEnd(applyDetailService.findPageForCompany(pageWrap).getRecords(),
+                 pageWrap.getModel().getSolutionName(),"鍦ㄤ繚浜哄憳鍚嶅崟",null, response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/platform/src/main/java/com/doumee/api/business/CompanyController.java b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
index 9385bda..6362cc3 100644
--- a/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
@@ -116,6 +116,13 @@
         pageWrap.setQueryFlag(Constants.ONE);//鏌ヨ鍏ㄩ儴
         return ApiResponse.success(companyService.findList(pageWrap));
     }
+    @ApiOperation("鏌ヨ鍏ㄩ儴鏁版嵁")
+    @PostMapping("/list")
+    @RequiresPermissions("business:company:query")
+    public ApiResponse<List<Company>> findList (@RequestBody  Company pageWrap) {
+        pageWrap.setQueryFlag(Constants.ZERO);//鏌ヨ鍏ㄩ儴鏉冮檺鑼冨洿鍐�
+        return ApiResponse.success(companyService.findList(pageWrap));
+    }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
diff --git a/server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java b/server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java
index ded1478..5371fd2 100644
--- a/server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java
@@ -79,11 +79,25 @@
         return ApiResponse.success(memberInsuranceService.findPage(pageWrap));
     }
 
+//    @ApiOperation("瀵煎嚭Excel")
+//    @PostMapping("/exportExcel")
+//    @RequiresPermissions("business:memberinsurance:exportExcel")
+//    public void exportExcel (@RequestBody PageWrap<MemberInsurance> pageWrap, HttpServletResponse response) {
+//        ExcelExporter.build(MemberInsurance.class).export(memberInsuranceService.findPage(pageWrap).getRecords(), "鍛樺伐鎶曚繚鏄庣粏璁板綍", response);
+//    }
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:memberinsurance:exportExcel")
     public void exportExcel (@RequestBody PageWrap<MemberInsurance> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(MemberInsurance.class).export(memberInsuranceService.findPage(pageWrap).getRecords(), "鍛樺伐鎶曚繚鏄庣粏璁板綍", response);
+        List<MemberInsurance> list = memberInsuranceService.findPage(pageWrap).getRecords();
+        for (int i = 0; i < list.size(); i++) {
+            MemberInsurance memberInsurance  = list.get(i);
+            memberInsurance.setSn(i+1);
+        }
+        ExcelExporter.build(MemberInsurance.class).exportWithFirstAndEnd(list,
+                "浜哄憳鎶曚繚璇﹀崟_濮撳悕锛�"+pageWrap.getModel().getMemberName() +"_韬唤璇佸彿锛�"+pageWrap.getModel().getIdcardNo(),
+                "浜哄憳鎶曚繚璇﹀崟_濮撳悕锛�"+pageWrap.getModel().getMemberName() +"_韬唤璇佸彿锛�"+pageWrap.getModel().getIdcardNo(),null, response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
index ba0fe87..58da84c 100644
--- a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -77,4 +77,17 @@
     }
 
 
+
+    /**
+     * 瀹氭椂鏇存柊鐢熸垚缁繚鎻愰啋
+     * @throws Exception
+     */
+    @Scheduled(cron = "0 1 00 * * ?")
+    public void generateNotice(){
+        log.info("==============瀹氭椂鏇存柊鐢熸垚缁繚鎻愰啋=======start======");
+        insuranceApplyService.generateNotice();
+        log.info("==============瀹氭椂鏇存柊鐢熸垚缁繚鎻愰啋======end=======");
+    }
+
+
 }
diff --git a/server/platform/src/main/resources/application.yml b/server/platform/src/main/resources/application.yml
index 40a1f40..2d0245f 100644
--- a/server/platform/src/main/resources/application.yml
+++ b/server/platform/src/main/resources/application.yml
@@ -5,7 +5,7 @@
   env: development
 #  env: production
 server:
-  port: 10023
+  port: 10030
 
 spring:
 #  application:
diff --git a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index 107521a..7f6e0bb 100644
--- a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -2,6 +2,7 @@
 
 import cn.emay.sdk.core.dto.sms.response.SmsResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.biz.system.SystemUserBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
@@ -41,6 +42,8 @@
     @Autowired
     private SmsEmailMapper smsEmailMapper;
 
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
     @Autowired
     private CompanyService companyService;
     @Value("${debug_model}")
@@ -144,7 +147,8 @@
         // 鐢熸垚瀵嗙爜鐩�
         String salt = RandomStringUtils.randomAlphabetic(6);
         // 鐢熸垚瀵嗙爜
-        systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
+//        systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
+        systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt));
         systemUser.setSalt(salt);
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         systemUser.setType(loginUserInfo.getType());
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index ff6ca38..acfdf81 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -750,6 +750,7 @@
         COMPANY_EDIT(10, "淇濆崟淇敼","鎻愪氦鎰忚锛�${param1}\n${param2}",0),
         PLATFORM_CHECK_PASS(11, "鎶曚繚瀹℃牳閫氳繃","",0),
         UPLOAD_AGAIN(26, "鍐嶆鎶曚繚","",0),
+        PALTFORM_EDIT_BD(22, "淇敼淇濆崟","淇敼鍘熷洜锛�${param}",0),
 
 
         CA_PLATFORM_CHECK_PASS_NO(12, "閫�鍥炴姇淇�","鎻愪氦鎰忚锛�${param}",1),
@@ -762,7 +763,6 @@
         CA_COMPANY_CLOSE(19, "鍏抽棴璁㈠崟","",1),
         CA_PALTFORM_REFUSE_APPLY(20, "椹冲洖閫�鍥炵敵璇�","",1),
         CA_PALTFORM_EDIT_PIDAN(21, "淇敼鎵瑰崟","淇敼鍘熷洜锛�${param}",1),
-        PALTFORM_EDIT_BD(22, "淇敼淇濆崟","淇敼鍘熷洜锛�${param}",1),
         CA_JIAJIAN_APPLY_SIGN(23, "鍔犲噺淇濈敵璇蜂紒涓氱绔�","",1),
         CA_CHANGUNIT_APPLY_SIGN(24, "鎹㈠巶鐢宠浼佷笟绛剧珷","",1),
         CA_UPLOAD_AGAIN(25, "鍐嶆鎶曚繚","",1),
@@ -1010,7 +1010,8 @@
         TWO(2, "寰呭嚭鍗�","寰呭鎵�","寰呭鎵�","","",""),
         THREE(3, "鐢宠閫�鍥�","鐢宠閫�鍥�","鐢宠閫�鍥�","","",""),
         FOUR(4, "宸查��鍥�","宸查��鍥�","宸查��鍥�","","",""),
-        FIVE(5, "鐢宠椹冲洖","鐢宠椹冲洖","鐢宠椹冲洖","","","")
+        FIVE(5, "鐢宠椹冲洖","鐢宠椹冲洖","鐢宠椹冲洖","","",""),
+        SIX(6, "","","","","","")
         ;
 
         // 鎴愬憳鍙橀噺
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
index 1c7a4d1..4361576 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
@@ -61,7 +61,7 @@
     private Date createTimeE;
 
     @ApiModelProperty(value = "鐘舵�� 0寰呭鏍� 1骞冲彴閫�鍥炰繚鍗曪紙宸查��鍥烇級 2宸蹭笂浼犱唬绛剧敵璇疯〃寰呬紒涓氱绔狅紙寰呯缃诧級  3宸茬绔犲緟涓婁紶淇濋櫓鍗曪紙寰呭嚭鍗曪級 4淇濆崟鍑哄叿澶辫触閫�鍥烇紙宸查��鍥烇級 5宸蹭笂浼犱繚鍗曪紙淇濋殰涓級6浼佷笟鐢宠閫�鍥炰腑 7骞冲彴鍚屾剰閫�鍥烇紙宸查��鍥烇級 8浼佷笟鍏抽棴  锛堝凡鍏抽棴锛�", example = "1")
-    private Integer status;
+    private String status;
 
     @ApiModelProperty(value = "绫诲瀷 0鐩翠繚 1濮旀墭鎶曚繚")
     private Integer type;
@@ -71,6 +71,7 @@
 
     @ApiModelProperty(value = "鍗冲皢澶辨晥璁㈠崟锛�0=鍚︼紱1=鏄�")
     private Integer loseEfficacy;
+
     @ApiModelProperty(value = "鐘舵�� 0寰呭鏍� 1寰呭嚭鍗� 2淇濋殰涓�  3宸茶繃鏈� 4宸叉挙鍥� 5閫�鍥炵敵璇蜂腑 6宸插叧闂�", example = "1")
     private Integer statusCollect;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
index 78a3799..3a76cfa 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
@@ -3,6 +3,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
 import java.util.List;
 
 @Data
@@ -34,6 +35,9 @@
     @ApiModelProperty(value = "淇濆崟涓婚敭涓嬫暟鎹�" , notes = "鍑忎繚鐢宠/鎹㈠巶鐢宠")
     private Integer insuranceApplyId;
 
+    @ApiModelProperty(value = "鎵瑰崟鏃ユ湡" , notes = "鍑忎繚鐢宠/鎹㈠巶鐢宠")
+    private Date validTime ;
+
     @ApiModelProperty(value = "浼佷笟涓婚敭")
     private Integer companyId;
 
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
index 914ad0b..e69641a 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
@@ -116,6 +116,12 @@
     @ApiModelProperty(value = "娲鹃仯鍗曚綅鍚嶇О")
     @TableField(exist = false)
     private String oldDuName;
+    @ApiModelProperty(value = "鏂规鍚嶇О")
+    @TableField(exist = false)
+    private String solutionsName;
+    @ApiModelProperty(value = "淇濆崟鍙�")
+    @TableField(exist = false)
+    private String applyCode;
 
     @ApiModelProperty(value = "宸ョ鍚嶇О")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java b/server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java
index 3373e31..55a59c9 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/CompanySolution.java
@@ -67,8 +67,8 @@
     @ExcelColumn(name="鎺掑簭鐮�")
     private Integer sortnum;
 
-    @ApiModelProperty(value = "鏂规缂栫爜锛堝叧鑱攕olutions锛�", example = "1")
-    @ExcelColumn(name="鏂规缂栫爜锛堝叧鑱攕olutions锛�")
+    @ApiModelProperty(value = "鏂规缂栫爜锛堝叧鑱攕olutions锛� 鍩鸿〃鏁版嵁", example = "1")
+    @ExcelColumn(name="鏂规缂栫爜锛堝叧鑱攕olutions锛夊熀琛ㄦ暟鎹�")
     private Integer solutionBaseId;
 
     @ApiModelProperty(value = "鏄惁鍙姞淇� 0鍚� 1鏄�", example = "1")
@@ -88,4 +88,9 @@
     private Integer solutionId;
 
 
+    @ApiModelProperty(value = "鏂规瀵硅薄", example = "1")
+    @TableField(exist = false)
+    private Solutions solution;
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
index e5965dc..21621f5 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
@@ -46,7 +46,6 @@
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
     @ExcelColumn(name="鏇存柊鏃堕棿")
-
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
@@ -187,6 +186,9 @@
     @TableField(exist = false)
     private String statusInfo;
 
+    @ApiModelProperty(value = "鏈�鍚庝竴娆″姞鍑忎繚/鎹㈠巶鏃ユ湡")
+    @TableField(exist = false)
+    private Date lastChangeDate;
 
 
     public TaxesInvoicingVO toTaxesInvoicingVO(){
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Member.java b/server/service/src/main/java/com/doumee/dao/business/model/Member.java
index 4f9ce76..beba41d 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -47,22 +47,22 @@
     private Integer sortnum;
 
     @ApiModelProperty(value = "濮撳悕")
-    @ExcelColumn(name="鍛樺伐鍚嶇О",index = 2)
+    @ExcelColumn(name="鍛樺伐鍚嶇О",index = 2,width = 6)
     private String name;
 
     @ApiModelProperty(value = "鎶曚繚鐢宠缂栫爜锛堝叧鑱攊nsurance_apply", example = "1")
     private Integer applyId;
 
     @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥姝㈡湡")
-    @ExcelColumn(name="淇濋櫓鐢熸晥姝㈡湡",index = 9)
+    @ExcelColumn(name="淇濋櫓鐢熸晥姝㈡湡",index = 9,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
     private Date endTime;
 
     @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥璧锋湡")
-    @ExcelColumn(name="淇濋櫓鐢熸晥璧锋湡",index = 8)
+    @ExcelColumn(name="淇濋櫓鐢熸晥璧锋湡",index = 8,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
     private Date startTime;
 
     @ApiModelProperty(value = "韬唤璇佸彿鐮�")
-    @ExcelColumn(name="韬唤璇佸彿",index = 3)
+    @ExcelColumn(name="韬唤璇佸彿",index = 3,width = 12)
     private String idcardNo;
 
     @ApiModelProperty(value = "浼佷笟缂栫爜锛堝叧鑱攃ompany锛�", example = "1")
@@ -78,17 +78,17 @@
     private Integer sex;
 
     @ApiModelProperty(value = "淇濋櫓鏂规鍚嶇О")
-    @ExcelColumn(name="淇濋櫓鏂规",index = 5)
+    @ExcelColumn(name="淇濋櫓鏂规",index = 5,width = 10)
     @TableField(exist = false)
     private String solutionName;
 
     @ApiModelProperty(value = "娲鹃仯鍗曚綅鍚嶇О")
-    @ExcelColumn(name="娲鹃仯鍗曚綅",index = 6)
+    @ExcelColumn(name="娲鹃仯鍗曚綅",index = 6,width = 10)
     @TableField(exist = false)
     private String duName;
 
     @ApiModelProperty(value = "鎵�灞炲伐绉嶅悕绉�")
-    @ExcelColumn(name="鎵�灞炲伐绉�",index = 7)
+    @ExcelColumn(name="鎵�灞炲伐绉�",index = 7,width = 20)
     @TableField(exist = false)
     private String workTypeName;
 
@@ -97,17 +97,17 @@
     private String companyName;
 
     @ApiModelProperty(value = "淇濋櫓鐘舵��:1=淇濋殰涓�;2=涓嶅湪淇�")
-    @ExcelColumn(name="淇濋櫓鐘舵��",index = 1,valueMapping = "1=淇濋殰涓�;2=涓嶅湪淇�;")
+    @ExcelColumn(name="淇濋櫓鐘舵��",index = 1,valueMapping = "1=淇濋殰涓�;2=涓嶅湪淇�;",width = 6)
     @TableField(exist = false)
     private Integer solutionsStatus;
 
     @ApiModelProperty(value = "骞撮緞")
-    @ExcelColumn(name="骞撮緞",index = 4)
+    @ExcelColumn(name="骞撮緞",index = 4,width = 4)
     @TableField(exist = false)
     private Long age;
 
     @ApiModelProperty(value = "搴忓彿", example = "1")
-    @ExcelColumn(name="搴忓彿",index = 0)
+    @ExcelColumn(name="搴忓彿",index = 0,width = 4)
     @TableField(exist = false)
     private Integer sn;
 
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java b/server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java
index b1071d8..163de63 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java
@@ -57,6 +57,7 @@
         this.creator = sysUserId;
         this.isdeleted = Constants.ZERO;
         this.applyId = applyChange.getApplyId();
+        this.applyChangeId = applyChange.getId();
         this.memberId = applyChangeDetail.getMemberId();
         this.endTime = applyChangeDetail.getEndTime();
         this.startTime = applyChangeDetail.getStartTime();
@@ -65,9 +66,9 @@
         this.worktypeId = applyChangeDetail.getWorktypeId();
         this.fee = applyChangeDetail.getFee();
         this.sex = applyChangeDetail.getSex();
-        this.bdCode = applyChange.getApplyCode();
-        this.pdCode = applyChange.getCode();
-        this.solutionName = applyChange.getSolutionsName();
+        this.bdCode = applyChangeDetail.getApplyCode();
+        this.pdCode = applyChange.getValidCode();
+        this.solutionName = applyChangeDetail.getSolutionsName();
         this.worktypeName = applyChangeDetail.getWorkTypeName();
         this.duName = applyChangeDetail.getDuName();
 //        this.relationType = Constants.ONE;
@@ -109,11 +110,11 @@
     private Integer memberId;
 
     @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥姝㈡湡")
-    @ExcelColumn(name="淇濋櫓鐢熸晥姝㈡湡",index = 7)
+    @ExcelColumn(name="淇濋櫓鐢熸晥姝㈡湡",index = 7,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
     private Date endTime;
 
     @ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥璧锋湡")
-    @ExcelColumn(name="淇濋櫓鐢熸晥璧锋湡",index = 6)
+    @ExcelColumn(name="淇濋櫓鐢熸晥璧锋湡",index = 6,width = 12,dateFormat="yyyy-MM-dd HH:mm:ss")
     private Date startTime;
 
     @ApiModelProperty(value = "韬唤璇佸彿鐮�")
@@ -141,33 +142,34 @@
     private Integer sex;
 
     @ApiModelProperty(value = "淇濆崟鍙�")
-    @ExcelColumn(name="淇濆崟鍙�",index = 2)
+    @ExcelColumn(name="淇濆崟鍙�",index = 2,width = 5)
     private String bdCode;
 
     @ApiModelProperty(value = "鎵瑰崟鍙�")
-    @ExcelColumn(name="鎵瑰崟鍙�",index = 3)
+    @ExcelColumn(name="鎵瑰崟鍙�",index = 3,width = 5)
     private String pdCode;
 
     @ApiModelProperty(value = "淇濋櫓鏂规鍚嶇О")
-    @ExcelColumn(name="淇濋櫓鏂规",index = 1)
+    @ExcelColumn(name="淇濋櫓鏂规",index = 1,width = 6)
     private String solutionName;
 
     @ApiModelProperty(value = "鎵瑰崟鐢宠缂栫爜", example = "1")
     private Integer applyChangeId;
 
     @ApiModelProperty(value = "宸ョ鍚嶇О")
-    @ExcelColumn(name="宸ョ鍚嶇О",index = 5)
+    @ExcelColumn(name="宸ョ鍚嶇О",index = 5,width = 6)
     private String worktypeName;
 
     @ApiModelProperty(value = "娲鹃仯鍗曚綅鍚嶇О")
-    @ExcelColumn(name="娲鹃仯鍗曚綅",index = 4)
+    @ExcelColumn(name="娲鹃仯鍗曚綅",index = 4,width = 6)
     private String duName;
 
 
     @ApiModelProperty(value = "搴忓彿", example = "1")
-    @ExcelColumn(name="搴忓彿",index = 0)
+    @ExcelColumn(name="搴忓彿",index = 0,width = 3)
     @TableField(exist = false)
     private Integer sn;
+
 
 
     @ApiModelProperty(value = "鍏宠仈鏄庣粏涓婚敭", example = "1")
@@ -177,6 +179,12 @@
     @TableField(exist = false)
     private String memberName;
 
+
+    @ApiModelProperty(value = "绛涢�夌姸鎬侊細0=鏈紑濮嬶紱1=宸插紑濮嬶紙鍖呮嫭宸茶繃鏈燂級", example = "1")
+    @TableField(exist = false)
+    private Integer status;
+
+
 //    @ApiModelProperty(value = "鍏宠仈鏄庣粏绫诲瀷锛�0=鎶曚繚鐢宠锛�1=鍔犲噺淇�/鎹㈠巶", example = "1")
 //    @ExcelColumn(name="鍏宠仈鏄庣粏绫诲瀷锛�0=鎶曚繚鐢宠锛�1=鍔犲噺淇�/鎹㈠巶")
 //    private Integer relationType;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
index 33b3c79..da6a49b 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
@@ -226,6 +226,10 @@
     @TableField(exist = false)
     private Date baoxianEndTime;
 
+    @ApiModelProperty(value = "璧勬枡瀹屾垚鏃堕棿")
+    @TableField(exist = false)
+    private Date finishDate;
+
 
     @ApiModelProperty(value = "鏂规鍩鸿〃缂栫爜锛堝叧鑱攕olutions锛�", example = "1")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
index 771b7c1..1643578 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -132,9 +132,6 @@
     @ExcelColumn(name="绛剧珷鍏抽敭瀛楋紝澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑")
     private String signKeyword;
 
-    @ApiModelProperty(value = "鎵�灞炴柟妗堝熀琛ㄧ紪鐮�(solution_base_id)", example = "1")
-    @ExcelColumn(name="鎵�灞炴柟妗堝熀琛ㄧ紪鐮�(solution_base_id)")
-    private Integer solutionBaseId;
 
     @ApiModelProperty(value = "鐗堟湰鍙�")
     @ExcelColumn(name="鐗堟湰鍙�")
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/ApplyNoticeVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/ApplyNoticeVO.java
new file mode 100644
index 0000000..7716fd4
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/ApplyNoticeVO.java
@@ -0,0 +1,23 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/2/21 14:13
+ */
+@Data
+public class ApplyNoticeVO {
+
+    @ApiModelProperty(value = "寰呯缃叉暟閲�")
+    private Integer  waitSignNum;
+
+    @ApiModelProperty(value = "缁繚鏁伴噺")
+    private Integer  renewalNum;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
index 45bb3d1..920ce43 100644
--- a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
+++ b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -132,4 +132,6 @@
     void dealWaitSignedData();
 
     CountCyclePriceVO getCountCyclePriceVO(CountCyclePriceDTO countCyclePriceDTO);
+
+    void generateNotice();
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java b/server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java
index 281c687..30aec7e 100644
--- a/server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java
+++ b/server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java
@@ -78,7 +78,9 @@
      * @return List<MemberInsurance>
      */
     List<MemberInsurance> findList(MemberInsurance memberInsurance);
-  
+
+    List<MemberInsurance> getList(MemberInsurance memberInsurance);
+
     /**
      * 鍒嗛〉鏌ヨ
      *
diff --git a/server/service/src/main/java/com/doumee/service/business/NoticesService.java b/server/service/src/main/java/com/doumee/service/business/NoticesService.java
index f3ded5d..ea40cd4 100644
--- a/server/service/src/main/java/com/doumee/service/business/NoticesService.java
+++ b/server/service/src/main/java/com/doumee/service/business/NoticesService.java
@@ -3,6 +3,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Notices;
+import com.doumee.dao.business.vo.ApplyNoticeVO;
+
 import java.util.List;
 
 /**
@@ -94,4 +96,10 @@
      * @return long
      */
     long count(Notices notices);
+
+    ApplyNoticeVO getApplyNotice(Integer companyId);
+
+    void closeApplyNotice(Integer companyId,Integer type);
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/SolutionsService.java b/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
index 53bb2f5..3d6d0de 100644
--- a/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SolutionsService.java
@@ -90,7 +90,9 @@
     PageData<Solutions> findPageCom(PageWrap<Solutions> pageWrap);
 
 
-    List<Solutions> findListForCompany();
+    List<Solutions> findListForCompany(Integer dataType);
+
+    Solutions getNewVersion(Integer solutionId);
     /**
      * 鏉′欢缁熻
      *
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
index ef23ee2..01d4c9c 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
@@ -93,6 +93,7 @@
     public List<ApplyChagneDetail> findList(ApplyChagneDetail applyDetailPageDTO) {
         MPJLambdaWrapper<ApplyChagneDetail> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(applyDetailPageDTO );
+        queryWrapper.selectAll(ApplyChagneDetail.class);
         queryWrapper.select("t2.name",ApplyChagneDetail::getWorkTypeName);
         queryWrapper.select("t3.name",ApplyChagneDetail::getDuName);
         queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 8aba30d..427eb00 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -82,6 +82,9 @@
     private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
 
     @Autowired
+    private ApplyChangeDetailJoinMapper applyChangeDetailJoinMapper;
+
+    @Autowired
     private MemberMapper memberMapper;
 
     @Autowired
@@ -164,6 +167,11 @@
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
         }
 
+        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId());
+        if(Objects.isNull(insuranceApply)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟淇℃伅");
+        }
+
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         ApplyChange update = new ApplyChange();
         update.setEditDate(new Date());
@@ -175,8 +183,8 @@
         update.setCheckUserId(user.getId());
         update.setId(model.getId());
         update.setValidCode(param.getValidCode());
-        update.setApplyStartTime(model.getApplyStartTime());
-        applyChangeMapper.updateById(update);
+        update.setApplyStartTime(param.getApplyStartTime());
+        update.setCode(model.getCode());
 
         param.getPidanFile().setIsdeleted(Constants.ZERO);
         param.getPidanFile().setCreator(user.getId());
@@ -187,6 +195,8 @@
         multifileMapper.insert(param.getPidanFile());
 
         update.setApplyId(model.getApplyId());
+
+
         if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
             //濡傛灉鏄姞鍑忎繚鐢宠 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹�
             dealDetailsValidTime(update);
@@ -194,6 +204,8 @@
             //濡傛灉鏄崲鍘傜敵璇� 澶勭悊鏄庣粏鏁版嵁
             dealDetailsDUdata(update);
         }
+
+        applyChangeMapper.updateById(update);
 
 //        if(1==1){
 //            throw new BusinessException(ResponseStatus.DATA_EMPTY);
@@ -278,76 +290,123 @@
                         .selectAll(ApplyChagneDetail.class)
                         .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit)
                         .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice)
+                        .selectAs(Solutions::getName,ApplyChagneDetail::getSolutionsName)
                         .selectAs(Worktype::getName,ApplyChagneDetail::getWorkTypeName)
                         .selectAs(DispatchUnit::getName,ApplyChagneDetail::getDuName)
-                  .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
-                  .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
-                  .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
-                  .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId)
+                        .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
+                        .selectAs(Member::getName, ApplyChagneDetail::getMemberName)
+                        .selectAs(InsuranceApply::getCode,ApplyChagneDetail::getApplyCode)
+                        .leftJoin(Member.class, Member::getId, ApplyChagneDetail::getMemberId)
+                        .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
+                      .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
+                      .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
                     .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
                     .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId)
                   .eq(ApplyChagneDetail::getApplyChangeId,update.getId())
                   .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) );
+
         if(detailList ==null || detailList.size()==0){
             return;
         }
+        //瀹為檯鎵瑰崟鐢熸晥鏃ユ湡
+        Date applyStartTime = DateUtil.getMontageDate(update.getApplyStartTime(),1);
         for(ApplyChagneDetail detail : detailList){
+            //鏌ヨ鍑忎繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
+            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
+                    .lambda()
+                    .eq(ApplyDetail::getApplyId,update.getApplyId())
+                    .eq(ApplyDetail::getIdcardNo,detail.getIdcardNo())
+                    .le(ApplyDetail::getStartTime,applyStartTime)
+                    .ge(ApplyDetail::getEndTime,applyStartTime)
+            )<=Constants.ZERO){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鎹㈠巶浜哄憳銆�" + detail.getMemberName() + "銆戞湭鏌ヨ鍒扮鍚堟壒鍗曟棩鏈熺殑鏁版嵁");
+            }
+
             //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
             ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
                     .eq(ApplyDetail::getApplyId, update.getApplyId())
                     .eq(ApplyDetail::getMemberId, detail.getMemberId())
+                    .le(ApplyDetail::getStartTime,applyStartTime)
+                    .ge(ApplyDetail::getEndTime,applyStartTime)
                     .orderByDesc(ApplyDetail::getCreateDate)
                     .last("limit 1"));
             if(oldModel == null  ){
-                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+detail.getMemberName()+"銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�");
+                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+detail.getMemberName()+"銆戝師淇濆崟淇℃伅鏈夎锛屾壒鍗曟棩鏈熸湭鍦ㄤ繚鍗曟棩鏈熷唴锛�");
             }
             Date endDate = oldModel.getEndTime();
-            //褰撳墠鏃ユ湡澶т簬鎵瑰崟鏃ユ湡 闇�瑕佸洖婊氭暟鎹疄闄呮暟鎹�
-            Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(update.getStartTime(),2))>0;
-            //鎹㈠巶鍚庡巻鍙茶褰曠殑璐圭敤 fee
-            Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(update.getStartTime(),2),DateUtil.getMontageDate(oldModel.getStartTime(),1)) + 1;
-            BigDecimal oldFee = this.getApplyPrice(update.getApplyId(),days);
-            BigDecimal fee = oldModel.getFee();
-            BigDecimal oldCurrentFee = oldModel.getCurrentFee();
-            applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
-                    .set(ApplyDetail::getEditor,update.getEditor())
-                    .set(ApplyDetail::getEditDate,update.getEditDate())
-                    .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getStartTime(),2))
-                    .set(ApplyDetail::getFee,oldFee)
-                    .set(flag,ApplyDetail::getCurrentFee,oldFee)
-                    .eq(ApplyDetail::getId,oldModel.getApplyId())
-            );
 
-            //淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
-            memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
-                    .set(MemberInsurance::getEndTime,update.getApplyStartTime())
-                            .set(MemberInsurance::getFee,oldFee)
-                    .eq(MemberInsurance::getRelationId,oldModel.getId())
-            );
+            //濡傛灉瀹為檯鎵瑰崟鏃ユ湡 鍜� 鍘熻褰曟棩鏈熺浉绛� 鍒欑洿鎺ヤ慨鏀硅褰曟淳閬e崟浣嶄笌宸ョ淇℃伅
+            if(applyStartTime.compareTo(oldModel.getStartTime())!=Constants.ZERO){
+                //褰撳墠鏃ユ湡澶т簬鎵瑰崟鏃ユ湡 闇�瑕佸洖婊氭暟鎹疄闄呮暟鎹�
+                Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(update.getApplyStartTime(),2))>0;
+                //鎹㈠巶鍚庡巻鍙茶褰曠殑璐圭敤 fee
+                Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(update.getApplyStartTime(),3),DateUtil.getMontageDate(oldModel.getStartTime(),1))+1;
+                BigDecimal oldFee = this.getApplyPrice(update.getApplyId(),days);
+                BigDecimal fee = oldModel.getFee();
+                BigDecimal oldCurrentFee = oldModel.getCurrentFee();
 
-            ApplyDetail applyDetail = new ApplyDetail();
-            applyDetail.setApplyId(oldModel.getApplyId());
-            applyDetail.setCreateDate(new Date());
-            applyDetail.setCreator(update.getEditor());
-            applyDetail.setMemberId(oldModel.getMemberId());
-            applyDetail.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(),1));
-            applyDetail.setEndTime(endDate);
-            applyDetail.setDuId(detail.getDuId());
-            applyDetail.setWorktypeId(detail.getWorktypeId());
-            applyDetail.setIdcardNo(oldModel.getIdcardNo());
-            applyDetail.setFee(fee.subtract(oldFee));
-            if(flag){
-                applyDetail.setCurrentFee(oldCurrentFee.multiply(oldFee));
+                applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+                        .set(ApplyDetail::getEditor,update.getEditor())
+                        .set(ApplyDetail::getEditDate,update.getEditDate())
+                        .set(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(),3))
+                        .set(ApplyDetail::getFee,oldFee)
+                        .set(flag,ApplyDetail::getCurrentFee,oldFee)
+                        .eq(ApplyDetail::getId,oldModel.getId())
+                );
+
+                //淇敼 鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
+                memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+                        .set(MemberInsurance::getEndTime,update.getApplyStartTime())
+                        .set(MemberInsurance::getFee,oldFee)
+                        .eq(MemberInsurance::getRelationId,oldModel.getId())
+                );
+
+                ApplyDetail applyDetail = new ApplyDetail();
+                applyDetail.setApplyId(oldModel.getApplyId());
+                applyDetail.setCreateDate(new Date());
+                applyDetail.setCreator(update.getEditor());
+                applyDetail.setMemberId(oldModel.getMemberId());
+                applyDetail.setIdcardNo(detail.getIdcardNo());
+                applyDetail.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
+                applyDetail.setMemberName(detail.getMemberName());
+                applyDetail.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(),1));
+                applyDetail.setEndTime(endDate);
+                applyDetail.setDuId(detail.getDuId());
+                applyDetail.setWorktypeId(detail.getWorktypeId());
+                applyDetail.setIdcardNo(oldModel.getIdcardNo());
+                applyDetail.setFee(fee.subtract(oldFee));
+                applyDetail.setIsdeleted(Constants.ZERO);
+                if(flag){
+                    applyDetail.setCurrentFee(oldCurrentFee.multiply(oldFee));
+                }else{
+                    applyDetail.setCurrentFee(BigDecimal.ZERO);
+                }
+                applyDetail.setSex(oldModel.getSex());
+                applyDetail.setMemberName(oldModel.getMemberName());
+                applyDetail.setFromId(detail.getId());
+                applyDetailJoinMapper.insert(applyDetail);
+
+                MemberInsurance memberInsurance = new MemberInsurance(applyDetail,update.getId());
+                memberInsuranceJoinMapper.insert(memberInsurance);
             }else{
-                applyDetail.setCurrentFee(BigDecimal.ZERO);
-            }
-            applyDetail.setSex(oldModel.getSex());
-            applyDetail.setMemberName(oldModel.getMemberName());
-            applyDetail.setFromId(detail.getId());
-            applyDetailJoinMapper.insert(applyDetail);
 
-            MemberInsurance memberInsurance = new MemberInsurance(applyDetail,update.getId());
-            memberInsuranceJoinMapper.insert(memberInsurance);
+                applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
+                        .set(ApplyDetail::getEditor,update.getEditor())
+                        .set(ApplyDetail::getEditDate,update.getEditDate())
+                        .set(ApplyDetail::getDuId,detail.getDuId())
+                        .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
+                        .eq(ApplyDetail::getId,oldModel.getId())
+                );
+
+                //鍛樺伐鎶曚繚鏄庣粏璁板綍 鍘嗗彶鏁版嵁
+                memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>().lambda()
+                        .set(MemberInsurance::getDuId,detail.getDuId())
+                        .set(MemberInsurance::getDuName,detail.getDuName())
+                        .set(MemberInsurance::getWorktypeId,detail.getWorktypeId())
+                        .set(MemberInsurance::getWorktypeName,detail.getWorkTypeName())
+                        .eq(MemberInsurance::getRelationId,oldModel.getId())
+                );
+            }
 
             Member member = memberMapper.selectById(detail.getMemberId());
             if(Objects.isNull(member)){
@@ -359,6 +418,11 @@
             member.setStartTime(detail.getStartTime());
             member.setEndTime(detail.getEndTime());
             memberMapper.updateById(member);
+
+            applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
+                    .set(ApplyChagneDetail::getStartTime,DateUtil.getMontageDate(update.getApplyStartTime(), 1))
+                    .eq(ApplyChagneDetail::getId,detail.getId())
+            );
         }
     }
     /**
@@ -369,11 +433,16 @@
         List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,
                 new MPJLambdaWrapper<ApplyChagneDetail>()
                         .selectAll(ApplyChagneDetail.class)
+                        .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
                         .selectAs(Solutions::getTimeUnit, ApplyChagneDetail::getSolutionTimeUnit)
                         .selectAs(Solutions::getPrice, ApplyChagneDetail::getSolutionPrice)
                         .selectAs(Worktype::getName, ApplyChagneDetail::getWorkTypeName)
                         .selectAs(DispatchUnit::getName, ApplyChagneDetail::getDuName)
+                        .selectAs(Member::getName, ApplyChagneDetail::getMemberName)
+                        .selectAs(Solutions::getName,ApplyChagneDetail::getSolutionsName)
+                        .selectAs(InsuranceApply::getCode,ApplyChagneDetail::getApplyCode)
                         .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
+                        .leftJoin(Member.class, Member::getId, ApplyChagneDetail::getMemberId)
                         .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
                         .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
                         .leftJoin(Worktype.class, Worktype::getId, ApplyChagneDetail::getWorktypeId)
@@ -390,7 +459,6 @@
         //鎶曚繚璁板綍 鍔犱繚鏁版嵁鍔犲叆鏂版暟鎹�  鍑忎繚鏁版嵁 淇敼鑰佹暟鎹�
         List<MemberInsurance> memberInsuranceList = new ArrayList<>();
 
-
         //鍔犱繚涓氬姟 浣跨敤鐨勫姞淇濋噾棰�
         ApplyChangeCyclePriceDTO applyChangeCyclePriceDTO_add = new ApplyChangeCyclePriceDTO();
         applyChangeCyclePriceDTO_add.setApplyId(update.getApplyId());
@@ -406,6 +474,19 @@
                 throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍛樺伐鏁版嵁");
             }
             if (Constants.equalsInteger(detail.getType(), Constants.ZERO)) {
+
+                //鏌ヨ鍔犱繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
+                if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
+                        .lambda()
+                        .eq(ApplyDetail::getApplyId,update.getApplyId())
+                        .eq(ApplyDetail::getIdcardNo,detail.getIdcardNo())
+                        .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(update.getApplyStartTime(),1))
+                        .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(),3))
+                )>Constants.ZERO){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + detail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
+                }
+
+
                 //鍔犱繚
                 ApplyDetail add = new ApplyDetail();
                 add.setApplyId(update.getApplyId());
@@ -417,14 +498,18 @@
                 add.setMemberId(detail.getMemberId());
                 add.setMemberName(detail.getMemberName());
                 add.setWorktypeId(detail.getWorktypeId());
+                add.setIsdeleted(Constants.ZERO);
+                add.setIdcardNo(detail.getIdcardNo());
+                add.setSex(Constants.getSexByIdCard(detail.getIdcardNo()));
+                add.setMemberName(detail.getMemberName());
                 add.setDuId(detail.getDuId());
                 add.setStartTime(update.getApplyStartTime());
-                add.setEndTime(detail.getEndTime());
                 add.setStartTime(DateUtil.getMontageDate(update.getApplyStartTime(), 1));
                 add.setEndTime(DateUtil.getMontageDate(detail.getEndTime(), 2));
                 add.setFee(countCyclePriceVO_add.getCyclePrice());
 
-                if (DateUtil.daysBetweenDates(DateUtil.getMontageDate(detail.getStartTime(), 2), new Date()) >= 0) {
+
+                if(new Date().compareTo(DateUtil.getMontageDate(detail.getStartTime(), 2))>=0){
                     Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2), detail.getStartTime()) + 1;
                     //濡傛灉宸蹭骇鐢熻垂鐢紝璁$畻宸蹭骇鐢熻垂鐢�
                     add.setCurrentFee(this.getApplyPrice(update.getApplyId(), days));
@@ -437,6 +522,13 @@
 
                 MemberInsurance memberInsurance = new MemberInsurance(detail, update, update.getEditor(), add.getId());
                 memberInsuranceList.add(memberInsurance);
+
+                applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
+                        .set(ApplyChagneDetail::getFee,add.getFee())
+                        .set(ApplyChagneDetail::getStartTime,DateUtil.getMontageDate(update.getApplyStartTime(), 1))
+                        .eq(ApplyChagneDetail::getId,detail.getId())
+                );
+
             } else {
                     //鍑忎繚鎿嶄綔
                     //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
@@ -480,6 +572,14 @@
                             .set(MemberInsurance::getEndTime, update.getApplyStartTime())
                             .eq(MemberInsurance::getRelationId, oldModel.getId())
                     );
+
+                    //淇敼涓氬姟鏄庣粏琛屾暟鎹疄闄呮壒鍗曟棩鏈�
+                    applyChangeDetailJoinMapper.update(null,new UpdateWrapper<ApplyChagneDetail>().lambda()
+                            .set(ApplyChagneDetail::getFee,updateFee)
+                            .set(ApplyChagneDetail::getEndTime,DateUtil.getMontageDate(update.getApplyStartTime(), 3))
+                            .eq(ApplyChagneDetail::getId,detail.getId())
+                    );
+
             }
 
             member.setApplyId(update.getApplyId());
@@ -502,6 +602,9 @@
                     .set(InsuranceApply::getEditDate, update.getEditDate())
                     .eq(InsuranceApply::getId, update.getApplyId())
             );
+
+            update.setFee(totalFee);
+
         }
     }
 
@@ -620,7 +723,7 @@
         }
         CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda()
                 .eq(CompanySolution::getCompanyId,loginUserInfo.getCompanyId())
-                .eq(CompanySolution::getSolutionBaseId,solutions.getId())
+                .eq(CompanySolution::getSolutionId,solutions.getId())
                 .eq(CompanySolution::getIsdeleted,Constants.ZERO)
                 .last(" limit 1 ")
         );
@@ -632,6 +735,16 @@
                 && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
         }
+        //鏌ヨ淇濆崟涓嬫槸鍚﹀瓨鍦ㄨ繘琛屼腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁
+        if(applyChangeMapper.selectCount(new QueryWrapper<ApplyChange>().lambda()
+                .eq(ApplyChange::getApplyId,insuranceApply.getId())
+                .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.APPROVE.getKey(),Constants.ApplyChangeStatus.CLOSE.getKey())
+
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀛樺湪杩涜涓殑鍔犲噺淇�/鎹㈠巶鐢宠");
+        };
+
+
         applyChange.setCreateDate(new Date());
         applyChange.setCreator(loginUserInfo.getId());
         applyChange.setEditor(loginUserInfo.getId());
@@ -647,12 +760,6 @@
         applyChangeFee.setId(applyChange.getId());
         applyChangeFee.setFee(fee);
         applyChangeMapper.updateById(applyChangeFee);
-
-//        if(1==1){
-//            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-//        }
-
-
 
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_COMPANY_COMMIT;
         String info =applyLogType.getInfo();
@@ -722,7 +829,14 @@
                 && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
         }
-
+        //鏌ヨ淇濆崟涓嬫槸鍚﹀瓨鍦ㄨ繘琛屼腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁
+        if(applyChangeMapper.selectCount(new QueryWrapper<ApplyChange>().lambda()
+                .eq(ApplyChange::getApplyId,insuranceApply.getId())
+                .ne(ApplyChange::getId,applyChange.getId())
+                .notIn(ApplyChange::getStatus,Constants.ApplyChangeStatus.APPROVE.getKey(),Constants.ApplyChangeStatus.CLOSE.getKey())
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀛樺湪杩涜涓殑鍔犲噺淇�/鎹㈠巶鐢宠");
+        };
         applyChange.setEditDate(new Date());
         applyChange.setEditor(loginUserInfo.getId());
         applyChange.setApplyStartTime(applyChange.getValidTime());
@@ -733,7 +847,6 @@
         BigDecimal fee = this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,BigDecimal.ZERO);
         applyChange.setFee(fee);
         applyChangeMapper.updateById(applyChange);
-
 
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_UPLOAD_AGAIN;
         String info =applyLogType.getInfo();
@@ -844,6 +957,18 @@
             if (Objects.isNull(applyChagneDetail.getMemberId())) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け");
             }
+
+            //鏌ヨ鍑忎繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
+            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
+                    .lambda()
+                    .eq(ApplyDetail::getApplyId,applyChange.getApplyId())
+                    .eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo())
+                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
+                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
+            )<=Constants.ZERO){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮鍚堟壒鍗曟棩鏈熺殑鏁版嵁");
+            }
+            
             Member member = memberMapper.selectById(applyChagneDetail.getMemberId());
             if (Objects.isNull(member)) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮郴缁熶汉鍛樹俊鎭�");
@@ -862,6 +987,8 @@
             List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                     .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
                     .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
+                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
+                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
                     .orderByDesc(ApplyDetail::getCreateDate));
             if (applyDetailList.size() > Constants.ONE) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
@@ -901,13 +1028,25 @@
      * @param duSolutionList
      * @param loginUserInfo
      */
-    public void addChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> addDetailList,List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList,InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal detailFee){
+    public void addChangeDetail(ApplyChange applyChange ,List<ApplyChagneDetail> addDetailList,
+                                List<DuWorktype> duWorktypeList,List<DuSolution> duSolutionList,
+                                InsuranceApply insuranceApply,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal detailFee){
         for (ApplyChagneDetail applyChagneDetail : addDetailList) {
             if (    Objects.isNull(applyChagneDetail.getDuId())
                     || Objects.isNull(applyChagneDetail.getWorktypeId())
                     || StringUtils.isBlank(applyChagneDetail.getIdcardNo())
             ) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け");
+            }
+            //鏌ヨ鍔犱繚浜哄憳鏄惁瀛樺湪 鍐茬獊鐨� 淇濆崟鏄庣粏鏁版嵁
+            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
+                    .lambda()
+                    .eq(ApplyDetail::getApplyId,applyChange.getApplyId())
+                    .eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo())
+                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
+                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),3))
+            )>Constants.ZERO){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
             }
 
             applyChagneDetail.setCreateDate(new Date());
@@ -1026,6 +1165,18 @@
             ) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝繀濉」缂哄け");
             }
+
+            //鏌ヨ鎹㈠巶浜哄憳鏄惁瀛樺湪  鏈夋晥鐨勪繚鍗曟槑缁嗘暟鎹�
+            if(applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>()
+                    .lambda()
+                    .eq(ApplyDetail::getApplyId,applyChange.getApplyId())
+                    .eq(ApplyDetail::getIdcardNo,applyChagneDetail.getIdcardNo())
+                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
+                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
+            )<=Constants.ZERO){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮鍚堟壒鍗曟棩鏈熺殑鏁版嵁");
+            }
+
             Member member = memberMapper.selectById(applyChagneDetail.getMemberId());
             if (Objects.isNull(member)) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒扮郴缁熶汉鍛樹俊鎭�");
@@ -1035,6 +1186,7 @@
                     new MPJLambdaWrapper<ApplyChagneDetail>()
                             .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
                             .eq(ApplyChagneDetail::getMemberId, applyChagneDetail.getMemberId())
+                            .eq(ApplyChange::getApplyId, applyChange.getApplyId())
                             .in(ApplyChange::getStatus, Constants.ZERO, Constants.ONE)
             ) > Constants.ZERO) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄧ敵璇蜂腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁");
@@ -1043,7 +1195,8 @@
             List<ApplyDetail>  applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                     .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
                     .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
-                    .ge(ApplyDetail::getEndTime, new Date()));
+                    .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1))
+                    .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(applyChange.getApplyStartTime(),1)));
             if(applyDetailList.size()>Constants.ONE){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
             }else if(applyDetailList.size()==Constants.ZERO){
@@ -1060,6 +1213,10 @@
             if (duWorktypeList.stream().filter(d ->  d.getWorkTypeId().equals(applyChagneDetail.getWorktypeId()))
                     .collect(Collectors.toList()).size() <= Constants.ZERO) {
                 throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
+            }
+            if(applyChagneDetail.getOldDuId().equals(applyChagneDetail.getDuId())
+            && applyChagneDetail.getOldWorktypeId().equals(applyChagneDetail.getWorktypeId())){
+                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞崲鍘傛暟鎹浉鍚岋紒");
             }
             applyChagneDetail.setCreateDate(new Date());
             applyChagneDetail.setCreator(loginUserInfo.getId());
@@ -1201,6 +1358,7 @@
                         Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
 //                .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
 //                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
+                .eq(!Objects.isNull(model.getApplyId()),ApplyChange::getApplyId,model.getApplyId())
                 .eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
                 .ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
                 .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
@@ -1216,13 +1374,16 @@
             }
             queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId());
         }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
+
+        queryWrapper.orderByDesc(ApplyDetail::getCreateDate);
+
+//        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+//            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+//                queryWrapper.orderByDesc(sortData.getProperty());
+//            } else {
+//                queryWrapper.orderByAsc(sortData.getProperty());
+//            }
+//        }
         PageData<ApplyChange> pageData = PageData.from(applyChangeJoinMapper.selectJoinPage(page,ApplyChange.class, queryWrapper));
         return pageData;
     }
@@ -1280,7 +1441,7 @@
             //鍒犻櫎鍏朵粬寰呭姙
             noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,applyChange.getId()));
             Notices notices = new Notices(noticeObjectType,Constants.ZERO,applyChange.getId(),solutions.getName(),
-                    applyChange.getCompanyId(), Constants.NoticeType.THREE);
+                    insuranceApply.getCompanyId(), Constants.NoticeType.THREE);
             noticesMapper.insert(notices);
 
 
@@ -1334,7 +1495,9 @@
         applyChangeMapper.updateById(applyChange);
 
         String info = applyLogType.getInfo();
-        info = info.replace("${param}", applyChangeOptDTO.getOptIllustration());
+        if(StringUtils.isNotBlank(applyChangeOptDTO.getOptIllustration())){
+            info = info.replace("${param}", applyChangeOptDTO.getOptIllustration());
+        }
         ApplyLog log = new ApplyLog(applyChange,applyLogType.getName(),info,applyChange.getId(),applyLogType.getKey(), null, null);
         applyLogMapper.insert(log);
     }
@@ -1531,7 +1694,7 @@
                 .selectAs(InsuranceApply::getCompanyId,ApplyChange::getCompanyId)
                 .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                 .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime)
-                .selectAs(InsuranceApply::getStartTime,ApplyChange::getEndTime)
+                .selectAs(InsuranceApply::getEndTime,ApplyChange::getEndTime)
                 .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                 .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
index 1b5163a..051eacf 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -200,10 +200,15 @@
         queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName);
         queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo);
         queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName);
+        queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName);
         queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
         queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
         queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
+        queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId);
+        queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
+
         ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel();
+
         queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId());
         queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                         &&!applyDetailPageDTO.getApplyStatus().equals(Constants.ZERO),
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 148ab94..8e5c03b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -116,6 +116,8 @@
         //澶勭悊鍏宠仈鏂规
         dealSolutionsData(company);
     }
+
+    @Override
     @Transactional
     public void exportFiles(Integer id, HttpServletResponse response){
         try {
@@ -228,6 +230,11 @@
             if(s.getSolutionBaseId() == null){
                 continue;
             }
+            Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,s.getSolutionBaseId())
+                    .eq(Solutions::getDataType,Constants.TWO).last("limit 1"));
+            if(Objects.isNull(newVersion)){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇锋坊鍔犳湁鏁堢殑淇濋櫓鏂规淇℃伅锛�");
+            }
             sIds.add(s.getSolutionBaseId());
             s.setCompanyId(company.getId());
             s.setIsdeleted(Constants.ZERO);
@@ -236,6 +243,8 @@
             s.setCreateDate(company.getCreateDate());
             s.setCreator(company.getCreator());
             s.setSortnum(num++);
+            s.setSolutionBaseId( s.getSolutionBaseId() );
+            s.setSolutionId( newVersion.getId() );
             s.setStatus(Constants.ZERO);
             list.add(s);
         }
@@ -256,6 +265,45 @@
         companySolutionJoinMapper.insertBatchSomeColumn(list);
     }
 
+
+
+   /* private void dealSolutionsData(Company company) {
+        List<Integer> sIds = new ArrayList<>();
+        List<CompanySolution> list = new ArrayList<>();
+        int num =0;
+        for(CompanySolution s :company.getSolutionList()){
+            if(s.getSolution() == null || s.getSolution().getBaseId() == null ||s.getSolution().getId()==null){
+                continue;
+            }
+            sIds.add(s.getSolution().getId() );
+            s.setCompanyId(company.getId());
+            s.setIsdeleted(Constants.ZERO);
+            s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd()));
+            s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce()));
+            s.setCreateDate(company.getCreateDate());
+            s.setCreator(company.getCreator());
+            s.setSortnum(num++);
+            s.setSolutionBaseId( s.getSolution().getId() );
+            s.setSolutionId( s.getSolution().getBaseId() );
+            s.setStatus(Constants.ZERO);
+            list.add(s);
+        }
+        if(list.size() ==0){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇锋坊鍔犳湁鏁堢殑淇濋櫓鏂规淇℃伅锛�");
+        }
+        List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda()
+                .in(Solutions::getId,sIds)
+                .eq(Solutions::getIsdeleted,Constants.ZERO));
+        if(solutionsList.size()!= list.size()){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇锋坊鍔犳湁鏁堢殑淇濋櫓鏂规淇℃伅鍝�");
+        }
+        for(Solutions s:solutionsList){
+            if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"淇濋櫓鏂规銆�"+s.getName()+"銆戝凡琚鐢紝涓嶈兘杩涜璇ユ搷浣�");
+            }
+        }
+        companySolutionJoinMapper.insertBatchSomeColumn(list);
+    }*/
     private void isValidCreateParam(Company company) {
         if(StringUtils.isBlank(company.getPhone())
             ||StringUtils.isBlank(company.getName())
@@ -628,6 +676,9 @@
             for(Company company :companyList){
                 //鏌ヨ浼佷笟绛剧害鐘舵�� 瀹℃牳鐘舵��,0姝e湪鐢宠1閫氳繃2椹冲洖
                 int status = signService.organizationAuditStatus(company.getEmail());
+                if(status == 0){
+                    continue;
+                }
                 if(status == 1){
                     Company update = new Company();
                     update.setId(company.getId());
@@ -681,12 +732,9 @@
                         //鏇存柊璁よ瘉鐘舵��
                         companyMapper.updateById(update);
                     }
-
                 }
-
             }
         }
-
     }
 
 //    @Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index 649f103..65bc2af 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -810,13 +810,16 @@
         if (pageWrap.getModel().getBaseId() != null) {
             queryWrapper.eq(DispatchUnit::getBaseId, pageWrap.getModel().getBaseId());
         }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
+        queryWrapper.orderByAsc(DispatchUnit::getUnitStatus);
+        queryWrapper.orderByAsc(DispatchUnit::getWorktypeStatus);
+        queryWrapper.orderByDesc(DispatchUnit::getCreateDate);
+//        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+//            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+//                queryWrapper.orderByDesc(sortData.getProperty());
+//            } else {
+//                queryWrapper.orderByAsc(sortData.getProperty());
+//            }
+//        }
         PageData<DispatchUnit> pageData = PageData.from(dispatchUnitJoinMapper.selectJoinPage(page,DispatchUnit.class, queryWrapper));
         return pageData;
     }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java
index 606b538..9e43698 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java
@@ -6,8 +6,12 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.DispatchUnitMapper;
 import com.doumee.dao.business.DuWorktypeMapper;
+import com.doumee.dao.business.WorktypeMapper;
+import com.doumee.dao.business.model.DispatchUnit;
 import com.doumee.dao.business.model.DuWorktype;
+import com.doumee.dao.business.model.Worktype;
 import com.doumee.service.business.DuWorktypeService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -31,6 +35,12 @@
     @Autowired
     private DuWorktypeMapper duWorktypeMapper;
 
+    @Autowired
+    private WorktypeMapper worktypeMapper;
+
+    @Autowired
+    private DispatchUnitMapper dispatchUnitMapper;
+
     @Override
     public Integer create(DuWorktype duWorktype) {
         duWorktypeMapper.insert(duWorktype);
@@ -39,16 +49,35 @@
 
     @Override
     public void deleteById(Integer id) {
-        DuWorktype duWorktype = duWorktypeMapper.selectById(id);
-        if(Objects.isNull(duWorktype)){
+        DuWorktype dbDuWorkType = duWorktypeMapper.selectById(id);
+        if(Objects.isNull(dbDuWorkType)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(duWorktype.getStatus().equals(Constants.TWO)){
-            duWorktypeMapper.deleteById(id);
-        }else{
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐘舵�佹棤娉曡繘琛屽垹闄�");
+        if(!dbDuWorkType.getStatus().equals(Constants.TWO)){
+            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁鐘舵�侀敊璇紝鏃犳硶杩涜鍒犻櫎");
         }
+        DispatchUnit dispatchUnit = dispatchUnitMapper.selectById(dbDuWorkType.getDispatchUnitId());
+        if(Objects.isNull(dispatchUnit)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        duWorktypeMapper.deleteById(id);
 
+        if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda()
+                .eq(DuWorktype::getWorkTypeId,dbDuWorkType.getWorkTypeId())
+                .eq(DuWorktype::getStatus,Constants.ZERO)
+                .ne(DuWorktype::getId,dbDuWorkType.getId())
+        )>Constants.ZERO){
+            dispatchUnit.setWorktypeStatus(0);
+        }else  if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda()
+                .eq(DuWorktype::getWorkTypeId,dbDuWorkType.getWorkTypeId())
+                .eq(DuWorktype::getStatus,Constants.TWO)
+                .ne(DuWorktype::getId,dbDuWorkType.getId())
+        )>Constants.ZERO){
+            dispatchUnit.setWorktypeStatus(2);
+        }else{
+            dispatchUnit.setWorktypeStatus(1);
+        }
+        dispatchUnitMapper.updateById(dispatchUnit);
     }
 
     @Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index f3e2e61..3f8a428 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -133,7 +133,9 @@
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
+                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
+                .eq(Notices::getObjId,insuranceApply.getId()));
         Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
                 model.getCompanyId(), Constants.NoticeType.FOUR);
         noticesMapper.insert(notices);
@@ -185,6 +187,19 @@
         update.setEndTime(actEndTime);
         update.setStartTime(insuranceApply.getStartTime());
         insuranceApplyMapper.updateById(update);
+
+        //淇敼鏄庣粏琛岀殑寮�濮嬬粨鏉熸棩鏈�
+        applyDetailMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda().set(ApplyDetail::getStartTime,insuranceApply.getStartTime())
+                .set(ApplyDetail::getEndTime,actEndTime).eq(ApplyDetail::getApplyId,model.getId()));
+
+        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+                .eq(Multifile::getIsdeleted,Constants.ZERO)
+                .eq(Multifile::getObjType,Constants.MultiFile.BD_DONE_PDF.getKey())
+                .eq(Multifile::getObjId,update.getId())
+                .set(Multifile::getIsdeleted,Constants.ONE)
+                .set(Multifile::getEditDate,update.getEditDate())
+                .set(Multifile::getEditor,update.getEditor())
+        );
 
         insuranceApply.getBaoxiandanFile().setIsdeleted(Constants.ZERO);
         insuranceApply.getBaoxiandanFile().setCreator(user.getId());
@@ -443,7 +458,9 @@
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
+                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
+                .eq(Notices::getObjId,model.getId()));
         Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),model.getCompanyId(),Constants.NoticeType.TWO);
         noticesMapper.insert(notices);
 
@@ -468,6 +485,7 @@
 
     }
     public Multifile  uploadChangeSignedFileDo(ApplyChange model,String fileurl,String fullurl) {
+        Integer companyId = model.getCompanyId();
         ApplyChange update = new ApplyChange();
         update.setEditDate(new Date());
         update.setEditor(model.getCreator());
@@ -484,9 +502,11 @@
             noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY;
         }
         //鍒犻櫎鍏朵粬寰呭姙
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
+                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
+                .eq(Notices::getObjId,model.getId()));
         Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),
-                model.getCompanyId(), Constants.NoticeType.TWO);
+                companyId, Constants.NoticeType.TWO);
         notices.setParam1(model.getApplyId().toString());
         noticesMapper.insert(notices);
 
@@ -680,6 +700,14 @@
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
 
+        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+                .eq(Multifile::getIsdeleted,Constants.ZERO)
+                .eq(Multifile::getObjType,Constants.MultiFile.BD_APPLY_PDF.getKey())
+                .eq(Multifile::getObjId,update.getId())
+                .set(Multifile::getIsdeleted,Constants.ONE)
+                .set(Multifile::getEditDate,update.getEditDate())
+                .set(Multifile::getEditor,update.getEditor())
+        );
         insuranceApply.getToubaodanFile().setIsdeleted(Constants.ZERO);
         insuranceApply.getToubaodanFile().setCreator(user.getId());
         insuranceApply.getToubaodanFile().setObjId(update.getId());
@@ -753,7 +781,9 @@
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
+                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
+                .eq(Notices::getObjId,model.getId()));
         Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),solutions.getName(),model.getCompanyId(),noticeType);
         noticesMapper.insert(notices);
 
@@ -798,6 +828,8 @@
         Constants.InsuranceApplyStatus insuranceApplyStatus = Constants.InsuranceApplyStatus.UPLOAD;
         insuranceApply.setCreateDate(new Date());
         insuranceApply.setCreator(loginUserInfo.getId());
+        insuranceApply.setEditor(loginUserInfo.getId());
+        insuranceApply.setEditDate(new Date());
         insuranceApply.setIsdeleted(Constants.ZERO);
         insuranceApply.setCompanyId(loginUserInfo.getCompanyId());
         insuranceApply.setCheckInfo(insuranceApplyStatus.getName());
@@ -836,7 +868,9 @@
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
+                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
+                .eq(Notices::getObjId,insuranceApply.getId()));
         Notices notices = new Notices(noticeObjectType,Constants.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO);
         noticesMapper.insert(notices);
 
@@ -920,7 +954,9 @@
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
+                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
+                .eq(Notices::getObjId,insuranceApply.getId()));
         Notices notices = new Notices(noticeObjectType,Constants.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO);
         noticesMapper.insert(notices);
 
@@ -1027,6 +1063,7 @@
                 applyDetail.setIdcardNo(member.getIdcardNo());
                 applyDetail.setSex(member.getSex());
                 applyDetail.setFee(countCyclePriceVO.getCyclePrice());
+                applyDetail.setCurrentFee(BigDecimal.ZERO);
                 //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪
                 if(duSolutionList.stream().filter(d->d.getDispatchUnitId().equals(applyDetail.getDuId())).collect(Collectors.toList()).size()<=Constants.ZERO){
                     throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒");
@@ -1102,7 +1139,7 @@
         queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName);
         queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName);
         queryWrapper.select(" DATEDIFF( t.END_TIME ,now()  ) AS loseEfficacyDays  ");
-        queryWrapper.select(" ( select count(1) from apply_detail ad  where ad.apply_id = t.id ) as insureNum");
+        queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum");
         if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){
             queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney");
             queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast ");
@@ -1136,19 +1173,19 @@
             queryWrapper.ge(InsuranceApply::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTimeS()));
         }
         if (pageWrap.getModel().getEndTimeE() != null) {
-            queryWrapper.le(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE()));
+            queryWrapper.lt(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE()));
         }
         if (pageWrap.getModel().getStartTimeS() != null) {
             queryWrapper.ge(InsuranceApply::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTimeS()));
         }
         if (pageWrap.getModel().getStartTimeE() != null) {
-            queryWrapper.le(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE()));
+            queryWrapper.lt(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE()));
         }
         if (pageWrap.getModel().getCreateTimeS() != null) {
             queryWrapper.ge(InsuranceApply::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateTimeS()));
         }
         if (pageWrap.getModel().getCreateTimeE() != null) {
-            queryWrapper.le(InsuranceApply::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateTimeE()));
+            queryWrapper.lt(InsuranceApply::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateTimeE()));
         }
         if (pageWrap.getModel().getType() != null) {
             queryWrapper.eq(Solutions::getType, pageWrap.getModel().getType());
@@ -1157,7 +1194,7 @@
             queryWrapper.eq(InsuranceApply::getCode, pageWrap.getModel().getCode());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.eq(InsuranceApply::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.in(InsuranceApply::getStatus, pageWrap.getModel().getStatus().split(","));
         }
         if(CollectionUtils.isNotEmpty(pageWrap.getSorts())){
             for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -1182,7 +1219,7 @@
 
     public void    initApplyStatus(InsuranceApply apply){
         apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus()));
-        if(Constants.equalsInteger(apply.getStatusCollect(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
+        if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
             //濡傛灉宸插畬鎴�
             if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){
                 apply.setStatusCollect(Constants.THREE);//宸茶繃鏈�
@@ -1243,7 +1280,7 @@
             queryWrapper.eq(InsuranceApply::getCode, model.getCode());
         }
         if (model.getStatus() != null) {
-            queryWrapper.eq(InsuranceApply::getStatus, model.getStatus());
+            queryWrapper.in(InsuranceApply::getStatus, model.getStatus().split(","));
         }
         if (CollectionUtils.isNotEmpty(model.getIds())) {
             queryWrapper.in(InsuranceApply::getId, model.getIds());
@@ -1268,7 +1305,8 @@
                 .selectAll(InsuranceApply.class)
                 .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                 .selectAs(Company::getName,InsuranceApply::getCompanyName)
-                .select(" ( select count(1) from apply_detail ad  where ad.apply_id = t.id ) as insureNum")
+                .select(" ( select max(ac.APPLY_START_TIME) from apply_change ac  where ac.apply_id = t.id and ac.status = 2 ) as lastChangeDate")
+                .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum")
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                 .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                 .eq(InsuranceApply::getId,id)
@@ -1291,6 +1329,7 @@
                         .selectAll(ApplyLog.class)
                         .selectAs(SystemUser::getRealname,ApplyLog::getCreatorName)
                         .selectAs(Company::getName,ApplyLog::getCompanyName)
+                        .selectAs(SystemUser::getType,ApplyLog::getCreatorType)
                         .leftJoin(SystemUser.class,SystemUser::getId,ApplyLog::getCreator)
                         .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                         .in(ApplyLog::getObjType,Constants.ApplyLogType.getTypeList(Constants.ZERO))
@@ -1397,8 +1436,7 @@
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public void applyOpt(InsuranceApplyOptDTO insuranceApplyOptDTO){
         if(Objects.isNull(insuranceApplyOptDTO)
-            ||Objects.isNull(insuranceApplyOptDTO.getApplyId())
-            ||StringUtils.isBlank(insuranceApplyOptDTO.getOptIllustration())){
+            ||Objects.isNull(insuranceApplyOptDTO.getApplyId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -1436,7 +1474,9 @@
 
             //瀛樺偍寰呭姙淇℃伅
             //鍒犻櫎鍏朵粬寰呭姙
-            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
+                            .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
+                    .eq(Notices::getObjId,insuranceApply.getId()));
             Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
                     insuranceApply.getCompanyId(), Constants.NoticeType.THREE);
             noticesMapper.insert(notices);
@@ -1500,6 +1540,9 @@
                             Integer days =  DateUtil.calculateBetween(applyDetail.getStartTime(),new Date(),0);
                             applyDetail.setCurrentFee(fee.divide(BigDecimal.valueOf(maxDays),2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(days)));
                             applyDetailMapper.updateById(applyDetail);
+                        }else if(applyDetail.getStartTime().compareTo(new Date()) <= 0&&applyDetail.getEndTime().compareTo(new Date()) <= 0){
+                            applyDetail.setCurrentFee(fee);
+                            applyDetailMapper.updateById(applyDetail);
                         }
                         sumAmount = sumAmount.add(applyDetail.getCurrentFee());
                     }
@@ -1508,6 +1551,9 @@
                 insuranceApplyMapper.updateById(insuranceApply);
             }
         }
+//        if(1==1){
+//            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
+//        }
 
     }
 
@@ -1531,6 +1577,26 @@
     }
 
 
+    /**
+     * 鐢熸垚 寰呭鎵归�氱煡
+     */
+    @Override
+    public void generateNotice(){
+        List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,new MPJLambdaWrapper<InsuranceApply>()
+                .selectAll(InsuranceApply.class)
+                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+                .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+                .ge(InsuranceApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss"))
+                        .apply("  DATEDIFF(t.END_TIME,CURRENT_DATE() ) <= 5 ")
+                .notExists(" select  1 from notices n where n.obj_type = 0 and n.type = 6 and n.obj_id = t.id   ")
+        );
+        for (InsuranceApply insuranceApply:insuranceApplyList) {
+            Notices notices = new Notices(Constants.NoticeObjectType.INSURANCE_APPLY,Constants.ONE,insuranceApply.getId(),insuranceApply.getSolutionsName(),
+                    insuranceApply.getCompanyId(), Constants.NoticeType.SIX);
+            noticesMapper.insert(notices);
+        }
+    }
 
 
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
index dc8b93d..335ea94 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
@@ -17,6 +17,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -92,7 +93,25 @@
         wrapper.orderByDesc("CREATE_DATE");
         return memberInsuranceMapper.selectList(wrapper);
     }
-  
+
+
+    @Override
+    public List<MemberInsurance> getList(MemberInsurance memberInsurance) {
+        memberInsurance.setIsdeleted(Constants.ZERO);
+        QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
+        if(!Objects.isNull(memberInsurance.getStatus())){
+            if(memberInsurance.getStatus().equals(Constants.ZERO)){
+                wrapper.lambda().ge(MemberInsurance::getStartTime,new Date());
+            }else{
+                wrapper.lambda().le(MemberInsurance::getStartTime,new Date());
+            }
+        }
+        wrapper.lambda().orderByDesc(MemberInsurance::getCreateDate);
+        return memberInsuranceMapper.selectList(wrapper);
+    }
+
+
+
     @Override
     public PageData<MemberInsurance> findPage(PageWrap<MemberInsurance> pageWrap) {
         IPage<MemberInsurance> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -182,7 +201,9 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(memberInsuranceMapper.selectPage(page, queryWrapper));
+        PageData<MemberInsurance> pageData = PageData.from(memberInsuranceMapper.selectPage(page, queryWrapper));
+
+        return pageData;
     }
 
 
@@ -192,4 +213,8 @@
         QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
         return memberInsuranceMapper.selectCount(wrapper);
     }
+
+
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 68fe1ba..30020de 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -29,10 +29,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 鐢ㄥ伐淇℃伅琛⊿ervice瀹炵幇
@@ -211,15 +209,25 @@
                 .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.ONE),"now() between t.start_time and t.end_time")
                 .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.TWO),"now()  >  t.end_time")
         ;
+         queryWrapper.orderByAsc(DispatchUnit::getName);
+         queryWrapper.orderByAsc(Member::getName);
+//        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+//            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+//                queryWrapper.orderByDesc(sortData.getProperty());
+//            } else {
+//                queryWrapper.orderByAsc(sortData.getProperty());
+//            }
+//        }
+        PageData<Member> pageData = PageData.from(memberJoinMapper.selectJoinPage(page,Member.class, queryWrapper));
 
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
+        Integer sn = 0;
+        for (Member member:pageData.getRecords()) {
+            sn = sn + 1;
+            member.setSn(sn);
+            if(StringUtils.isNotBlank(member.getIdcardNo())){
+                member.setAge(Constants.getAgeByIdCard(member.getIdcardNo()));
             }
         }
-        PageData<Member> pageData = PageData.from(memberJoinMapper.selectJoinPage(page,Member.class, queryWrapper));
         return pageData;
     }
 
@@ -247,9 +255,10 @@
                 .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.ONE),"now() between t.start_time and t.end_time")
                 .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.TWO),"now()  >  t.end_time")
                 .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName())
-                .notExists(!Objects.isNull(memberQueryDTO.getNotInInsuranceApplyId()),
-                        " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getNotInInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
-                                " and ad.member_id = t.id ");
+                .notExists(!Objects.isNull(memberQueryDTO.getNotInInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()),
+                        " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getNotInInsuranceApplyId()+"" +
+                                " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " +
+                                " and ad.member_id = t.id ") ;
         if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())){
             lambdaWrapper = new MPJLambdaWrapper<Member>()
                     .selectAll(Member.class)
@@ -262,8 +271,11 @@
                     .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
                     .eq(Member::getIsdeleted, Constants.ZERO)
                     .eq(InsuranceApply::getId,memberQueryDTO.getInsuranceApplyId())
-                    .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId()),
-                            " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
+                    .le(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getStartTime,memberQueryDTO.getValidTime())
+                    .ge(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getEndTime,memberQueryDTO.getValidTime())
+                    .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()),
+                            " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getInsuranceApplyId()+"" +
+                                    " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " +
                                     " and ad.member_id = t.id ");
         }
         List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,lambdaWrapper);
@@ -284,6 +296,7 @@
                 .selectAs(Worktype::getName,Member::getWorkTypeName)
                 .leftJoin(DispatchUnit.class,DispatchUnit::getId,Member::getDuId)
                 .leftJoin(Worktype.class,Worktype::getId,Member::getWorktypeId)
+                .isNotNull(Member::getIdcardNo)
                 .eq(Member::getCompanyId,loginUserInfo.getCompanyId())
                 .eq(Member::getIsdeleted,Constants.ZERO)
         );
@@ -298,15 +311,17 @@
         if(dataList == null || dataList.size() ==0){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
         }
+        List<String> idCardList = dataList.stream().map(m->m.getIdCard()).collect(Collectors.toList());
+        Set<String> set = new HashSet<>(idCardList);
+        if(idCardList.size() != set.size()){
+            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁瀛樺湪韬唤璇佸彿鐩稿悓鏁版嵁锛�");
+        }
         for(MemberImport model : dataList){
             if(CollectionUtils.isNotEmpty(list)){
-                Member member = list.stream().filter(m->m.getIdcardNo().equals(model.getIdCard())).findAny().get();
-                if(!Objects.isNull(member)){
-//                    model.setWorkTypeId(member.getWorktypeId());
-//                    model.setWorkTypeName(member.getWorkTypeName());
+                Optional<Member>  memberOptional= list.stream().filter(m->m.getIdcardNo().equals(model.getIdCard())).findFirst();
+                if(memberOptional.isPresent()){
+                    Member member =  memberOptional.get();
                     model.setIdCard(member.getIdcardNo());
-//                    model.setDuId(member.getDuId());
-//                    model.setDuName(member.getDuName());
                     model.setSex(member.getSex());
                 }else{
                     model.setSex(Constants.getSexByIdCard(model.getIdCard()));
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java
index a351fd9..3607ba6 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java
@@ -11,6 +11,7 @@
 import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.InsuranceApply;
 import com.doumee.dao.business.model.Notices;
+import com.doumee.dao.business.vo.ApplyNoticeVO;
 import com.doumee.service.business.NoticesService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -22,6 +23,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 绯荤粺娑堟伅淇℃伅琛⊿ervice瀹炵幇
@@ -172,4 +174,50 @@
         QueryWrapper<Notices> wrapper = new QueryWrapper<>(notices);
         return noticesMapper.selectCount(wrapper);
     }
+
+
+    /**
+     * 鏌ヨ鎶曚繚鍗� 鎻愰啋鏁伴噺
+     * @param companyId
+     * @return
+     */
+    @Override
+    public ApplyNoticeVO getApplyNotice(Integer companyId){
+        ApplyNoticeVO applyNoticeVO = new ApplyNoticeVO();
+        applyNoticeVO.setWaitSignNum(Constants.ZERO);
+        applyNoticeVO.setRenewalNum(Constants.ZERO);
+        List<Notices> noticesList = noticesMapper.selectList(new QueryWrapper<Notices>()
+                .lambda()
+                .select(Notices::getType)
+                .eq(Notices::getPalt,Constants.ONE)
+                .eq(Notices::getCompanyId,companyId)
+                .eq(Notices::getObjType,Constants.NoticeObjectType.INSURANCE_APPLY.getKey())
+                .eq(Notices::getStatus,Constants.ZERO)
+                .in(Notices::getType,Constants.NoticeType.SIX.getStatus(),Constants.NoticeType.ONE.getStatus())
+        );
+        if(CollectionUtils.isNotEmpty(noticesList)){
+            applyNoticeVO.setRenewalNum(noticesList.stream().filter(m->m.getType().equals(Constants.NoticeType.SIX.getStatus())).collect(Collectors.toList()).size());
+            applyNoticeVO.setWaitSignNum(noticesList.size() - applyNoticeVO.getRenewalNum());
+        }
+        return applyNoticeVO ;
+    }
+
+    /**
+     * 鍏抽棴鎻愰啋
+     * @param companyId
+     * @param type
+     */
+    @Override
+    public void closeApplyNotice(Integer companyId,Integer type){
+        noticesMapper.update(null,new UpdateWrapper<Notices>()
+                .lambda()
+                .set(Notices::getStatus,Constants.ONE)
+                .eq(Notices::getPalt,Constants.ONE)
+                .eq(Notices::getCompanyId,companyId)
+                .eq(Notices::getStatus,Constants.ZERO)
+                .eq(Notices::getObjType,Constants.NoticeObjectType.INSURANCE_APPLY.getKey())
+                .eq(Notices::getType,type)
+        );
+    }
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index 5a501ce..73bb3b4 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -554,8 +554,34 @@
                         .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
                         .orderByAsc(SettleClaimsLog::getCreateDate)
         );
-
         settleClaims.setSettleClaimsLogList(settleClaimsLogList);
+        SettleClaimsLog lastConfirm = settleClaimsLogMapper.selectOne(new QueryWrapper<SettleClaimsLog>().lambda()
+                .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
+                .eq(SettleClaimsLog::getObjType,Constants.SettleClaimsLogType.PLATFORM_CONFIRM_INFORMATION.getKey())
+                .orderByDesc(SettleClaimsLog::getCreateDate)
+                .last(" limit 1")
+        );
+
+        Multifile multifile = multifileJoinMapper.selectOne(new QueryWrapper<Multifile>()
+                .lambda()
+                .eq(Multifile::getObjId,settleClaims.getId())
+                .eq(Multifile::getIsdeleted,Constants.ZERO)
+                .in(Multifile::getObjType,
+                        Constants.MultiFile.LP_SGXC_FILE.getKey(),
+                        Constants.MultiFile.LP_YGGX_FILE.getKey(),
+                        Constants.MultiFile.LP_MZCL_FILE.getKey(),
+                        Constants.MultiFile.LP_ZYCL_FILE.getKey(),
+                        Constants.MultiFile.LP_SCZL_FILE.getKey(),
+                        Constants.MultiFile.LP_JACL_FILE.getKey())
+                .orderByDesc(Multifile::getCreateDate)
+                .last(" limit 1")
+        );
+
+        if(!Objects.isNull(lastConfirm)&&!Objects.isNull(multifile)){
+            settleClaims.setFinishDate(lastConfirm.getCreateDate().compareTo(multifile.getCreateDate())>=0?lastConfirm.getCreateDate():multifile.getCreateDate());
+        }else if(!Objects.isNull(lastConfirm)&&Objects.isNull(multifile)){
+            settleClaims.setFinishDate(lastConfirm.getCreateDate());
+        }
         return settleClaims;
     }
 
@@ -674,7 +700,7 @@
         multifile.setObjType(scSupplementDTO.getObjType());
         multifile.setObjId(scSupplementDTO.getId());
         multifile.setFileurl(scSupplementDTO.getFileUrl());
-        multifile.setName(scSupplementDTO.getFileUrl().substring(scSupplementDTO.getFileUrl().lastIndexOf("/") + 1));
+        multifile.setName(scSupplementDTO.getFileName());
         multifile.setType(scSupplementDTO.getFileType());
         multifileJoinMapper.insert(multifile);
     }
@@ -847,7 +873,15 @@
             queryWrapper.eq(SettleClaims::getCode, pageWrap.getModel().getCode());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
+            if(pageWrap.getModel().getStatus().equals(Constants.ZERO)){
+                queryWrapper.in(SettleClaims::getStatus, Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey()
+                        ,Constants.SettleClaimsStatus.DEAL_ING.getKey()
+                        ,Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey());
+            }else{
+                queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
+            }
+
+
         }
         if (pageWrap.getModel().getType() != null) {
             queryWrapper.eq(SettleClaims::getType, pageWrap.getModel().getType());
@@ -879,7 +913,7 @@
         if (pageWrap.getModel().getInsuranceApplyId() != null) {
             queryWrapper.eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId());
         }
-        queryWrapper.orderByAsc(SettleClaims::getCreateDate);
+        queryWrapper.orderByDesc(SettleClaims::getCreateDate);
         /*for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
index ec4927b..ebac33f 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -7,10 +7,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.InsuranceMapper;
-import com.doumee.dao.business.SolutionWorktypeMapper;
-import com.doumee.dao.business.SolutionsMapper;
-import com.doumee.dao.business.WorktypeMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.SolutionWorktypeJoinMapper;
 import com.doumee.dao.business.join.SolutionsJoinMapper;
 import com.doumee.dao.business.model.*;
@@ -26,6 +23,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
@@ -52,8 +50,13 @@
     private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper;
     @Autowired
     private InsuranceMapper insuranceMapper;
+    @Autowired
+    private CompanySolutionMapper companySolutionMapper;
+    @Autowired
+    private DuSolutionMapper duSolutionMapper;
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(Solutions solutions) {
         LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         initCreateParam(solutions);//宸ョ鏁版嵁鏈夋晥鎬ф楠岋紝鍘婚櫎绌虹櫧琛屾暟鎹�
@@ -85,7 +88,7 @@
             throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ繚闄╁叕鍙镐俊鎭笉瀛樺湪锛岃灏濊瘯鍒锋柊椤甸潰閲嶈瘯~" );
         }
         if( !Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
-            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ繚闄╁叕鍙稿凡琚紝璇峰皾璇曞埛鏂伴〉闈㈤噸璇晘" );
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ繚闄╁叕鍙稿凡琚鐢紝璇峰皾璇曞埛鏂伴〉闈㈤噸璇晘" );
         }
         List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
                 .eq(Worktype::getInsuranceId,solutions.getInsuranceId())
@@ -154,6 +157,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public void updateById(Solutions solutions) {
         LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         Solutions model = findById(solutions.getId());
@@ -168,6 +172,18 @@
         solutions.setVersion(UUID.randomUUID().toString());
         solutions.setEditDate(new Date());
         solutionsMapper.updateById(solutions);
+
+        Solutions oldVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>()
+                .lambda()
+                .eq(Solutions::getBaseId,solutions.getId())
+                .eq(Solutions::getDataType,Constants.TWO)
+                .last("limit 1")
+        );
+
+
+        if(Objects.isNull(oldVersion)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍘嗗彶鐗堟湰鏁版嵁");
+        }
 
         //濡傛灉淇敼锛屽垯浜х敓涓�涓柊鐨勫巻鍙茬増鏈� ~
         Solutions newModel = new Solutions();
@@ -184,6 +200,8 @@
                 .lambda()
                 .eq(SolutionWorktype::getSolutionId,solutions.getId())
         );
+
+
         solutionsMapper.update(null,new UpdateWrapper<Solutions>()
                 .lambda()
                 .ne(Solutions::getId,newModel.getId())
@@ -194,6 +212,23 @@
         );
         //澶勭悊宸ョ淇℃伅锛屾柊澧炴渶鏂扮殑锛屽悓鏃朵骇鐢熷巻鍙茬増鏈�
         dealWorkType(solutions,newModel,solutions.getWorktypeIdList(),false);
+
+        //鏇存柊company_solution 浣跨敤鏂扮増鏈殑鏁版嵁
+        companySolutionMapper.update(null,
+                new UpdateWrapper<CompanySolution>()
+                        .lambda()
+                        .eq(CompanySolution::getStatus,Constants.ZERO)
+                        .set(CompanySolution::getSolutionId,newModel.getId())
+                        .eq(CompanySolution::getSolutionBaseId,solutions.getId())
+        );
+        //鏇存柊 du_solution 浣跨敤鏂扮増鏈殑鏁版嵁
+        duSolutionMapper.update(null,
+                 new UpdateWrapper<DuSolution>()
+                         .lambda()
+                         .eq(DuSolution::getIsdeleted, Constants.ZERO)
+                         .eq(DuSolution::getStatus, Constants.ONE)
+                         .set(DuSolution::getSolutionId,newModel.getId())
+                         .eq(DuSolution::getSolutionId,oldVersion.getId()));
     }
 
     @Override
@@ -359,9 +394,7 @@
         if (pageWrap.getModel().getOrtherInfo() != null) {
             queryWrapper.eq(Solutions::getOrtherInfo, pageWrap.getModel().getOrtherInfo());
         }
-        if (pageWrap.getModel().getSolutionBaseId() != null) {
-            queryWrapper.eq(Solutions::getSolutionBaseId, pageWrap.getModel().getSolutionBaseId());
-        }
+
         if (pageWrap.getModel().getVersion() != null) {
             queryWrapper.eq(Solutions::getVersion, pageWrap.getModel().getVersion());
         }
@@ -413,24 +446,52 @@
 
 
     @Override
-    public List<Solutions> findListForCompany() {
+    public List<Solutions> findListForCompany(Integer dataType) {
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         List<Solutions> solutionsList = solutionsJoinMapper.selectJoinList(Solutions.class,new MPJLambdaWrapper<Solutions>()
                         .selectAll(Solutions.class)
-                .leftJoin(CompanySolution.class,CompanySolution::getSolutionBaseId,Solutions::getId)
+                .leftJoin(CompanySolution.class,CompanySolution::getSolutionId,Solutions::getId)
+                .leftJoin(Company.class,Company::getId,CompanySolution::getCompanyId)
+                .leftJoin(Insurance.class,Insurance::getId,Solutions::getInsuranceId)
                 .eq(Solutions::getIsdeleted,Constants.ZERO)
-                .eq(Solutions::getDataType,Constants.TWO)
+                .eq(Solutions::getStatus,Constants.ZERO)
+                .eq(Solutions::getDataType,dataType)
                 .eq(CompanySolution::getIsdeleted,Constants.ZERO)
                 .eq(CompanySolution::getCompanyId,user.getCompanyId())
+                .eq(Company::getIsdeleted,Constants.ZERO)
+                .eq(Company::getStatus,Constants.ZERO)
+                .eq(Insurance::getIsdeleted,Constants.ZERO)
+                .eq(Insurance::getStatus,Constants.ZERO)
                 .orderByAsc(Solutions::getSortnum)
         );
         return solutionsList;
     }
 
-
-
-
-
+    /**
+     * 鏍规嵁鍘嗗彶鐗堟湰鏌ヨ褰撳墠鏈�鏂板惎鐢ㄧ増鏈�
+     * @param solutionId
+     * @return
+     */
+    @Override
+    public Solutions getNewVersion(Integer solutionId){
+        Solutions solutions = solutionsMapper.selectById(solutionId);
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍘嗗彶鏂规淇℃伅");
+        }
+        if(solutions.getDataType().equals(Constants.TWO)){
+            return solutions;
+        }
+        Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda()
+                .eq(Solutions::getIsdeleted,Constants.ZERO)
+                .eq(Solutions::getDataType,Constants.TWO)
+                .eq(Solutions::getBaseId,solutions.getBaseId())
+                .last("limit 1")
+        );
+        if(Objects.isNull(newVersion)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈�鏂扮増鏈暟鎹�");
+        }
+        return newVersion;
+    }
 
 
     @Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
index a980821..2cde2ac 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
@@ -240,7 +240,7 @@
         if(model==null || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
             throw  new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
+        if(Constants.equalsInteger(model.getApplyType(),Constants.ZERO)){
             List<TaxDetial> detialList = getDetailsApplysListById(id);
             model.setApplyList(detialList);
         }else{
@@ -272,8 +272,12 @@
             queryWrapper.selectAll(TaxDetial.class);
             queryWrapper.selectAs(InsuranceApply::getCode,TaxDetial::getApplyCode);
             queryWrapper.selectAs(Solutions::getName,TaxDetial::getSolutionName);
+            queryWrapper.selectAs(ApplyChange::getValidCode,TaxDetial::getChangApplyCode);
             queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,TaxDetial::getInsuranceApplyId);
             queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
+            queryWrapper.leftJoin(ApplyChange.class,ApplyChange::getId,TaxDetial::getApplyChangeId);
+            queryWrapper.in(TaxDetial::getType,Constants.ZERO,Constants.ONE);
+            queryWrapper.eq(TaxDetial::getTaxId,id);
             List<TaxDetial> detialList =  taxDetailJoinMapper.selectJoinList(TaxDetial.class,queryWrapper.orderByAsc(TaxDetial::getType));
             return detialList;
     }
@@ -443,6 +447,7 @@
         taxes.setAddr(entrustInvoicingDTO.getAddress());
         taxes.setCompanyName(company.getName());
         taxes.setApplyType(Constants.ZERO);
+        taxes.setTaxBank(company.getTaxBank());
         taxesMapper.insert(taxes);
 
         List<TaxDetial> taxDetialList = entrustInvoicingDTO.getTaxDetialList();
@@ -540,6 +545,7 @@
         List<ApplyChange> applyChangeList = applyChangeJoinMapper.selectJoinList(ApplyChange.class,new MPJLambdaWrapper<ApplyChange>()
                 .selectAll(ApplyChange.class)
                 .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
+                .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0  ) as addNum ")
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1  ) as delNum ")
                 .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID  ) as changeMoney" )
@@ -553,11 +559,13 @@
 
         if(CollectionUtils.isNotEmpty(applyChangeList)){
             for (ApplyChange applyChange:applyChangeList) {
-                insuranceApply.setFee(insuranceApply.getFee().subtract(applyChange.getFee()));
-                TaxesInvoicingVO taxesInvoicingVO = applyChange.toTaxesInvoicingVO();
                 if(!Objects.isNull(insuranceApply)){
-                    taxesInvoicingVO.setAmount(BigDecimal.ZERO);
+                    insuranceApply.setFee(insuranceApply.getFee().subtract(applyChange.getFee()));
                 }
+                TaxesInvoicingVO taxesInvoicingVO = applyChange.toTaxesInvoicingVO();
+//                if(!Objects.isNull(insuranceApply)){
+//                    taxesInvoicingVO.setAmount(BigDecimal.ZERO);
+//                }
                 taxesInvoicingVOList.add(taxesInvoicingVO);
             }
         }
@@ -613,6 +621,7 @@
         taxes.setType(directInvoicingDTO.getType());
         taxes.setTaxCode(company.getTaxCode());
         taxes.setTaxAccount(company.getTaxAccount());
+        taxes.setTaxBank(company.getTaxBank());
         taxes.setTaxAddr(company.getTaxAddr());
         taxes.setAddr(directInvoicingDTO.getAddress());
         taxes.setCompanyName(company.getName());
@@ -639,8 +648,8 @@
             taxDetial.setTaxId(taxes.getId());
             taxDetial.setTotalFee(taxesInvoicingVO.getAmount());
             taxDetial.setFee(taxesInvoicingVO.getAmount());
+            taxDetial.setInsuranceApplyId(taxes.getApplyId());
             if(taxesInvoicingVO.getType().equals(Constants.ZERO)){
-                taxDetial.setInsuranceApplyId(taxesInvoicingVO.getId());
                 taxDetial.setType(taxesInvoicingVO.getType());
             }else if(taxesInvoicingVO.getType().equals(Constants.ONE)){
                 taxDetial.setApplyChangeId(taxesInvoicingVO.getId());

--
Gitblit v1.9.3