瀏覽代碼

修复机修工图标问题,

udream-cxs 4 年之前
父節點
當前提交
0084dda2dd

+ 18 - 43
src/apps/mobile/components/multipleBrands/index.vue

@@ -6,13 +6,11 @@
         remote
         reserve-keyword
         placeholder="请选择电梯品牌"
-        :remote-method="remoteMethod"
         :loading="loading"
-        collapse-tags
-        @change="change"
-        @visible-change="visibleChange"
+        :collapse-tags="true"
+        @change="onChange"
         style="width:100%;"
-        multiple-limit="3"
+        :multiple-limit="3"
     >
         <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>
     </el-select>
@@ -28,13 +26,17 @@ export default {
         };
     },
     props: {
-        brandsId: {
+        value: {
             type: Array,
             default() {
                 return [];
             },
         },
     },
+    created: function(){
+        this.queryAllElevatorBrands()
+        
+    },
     methods: {
         queryAllElevatorBrands() {
             let obj = {
@@ -44,48 +46,21 @@ export default {
             };
             queryLifeBrandList(obj)
                 .then(res => {
-                    console.log(res);
                     this.options = res.data.records;
+                    this.$nextTick(()=>{
+                        this.brandIds = this.value;
+                    })
                 })
                 .catch();
         },
-        remoteMethod(query) {
-            if (query !== '') {
-                this.loading = true;
-                let obj = {
-                    pageNum: 1,
-                    pageSize: 5000,
-                    name: query,
-                };
-                queryLifeBrandList(obj)
-                    .then(res => {
-                        console.log(res);
-                        this.options = res.data.records.filter(item => {
-                            return item.name.toLowerCase().indexOf(query.toLowerCase()) > -1;
-                        });
-                        this.loading = false;
-                    })
-                    .catch(() => {
-                        this.loading = false;
-                    });
-            } else {
-                this.options = [];
-                this.queryAllElevatorBrands();
-            }
-        },
-        change(value) {
-            this.$emit('changeBrands', value);
-        },
-        visibleChange(booleans) {
-            this.queryAllElevatorBrands();
-        },
-    },
-    watch: {
-        brandsId(value) {
-            if (value) {
-                this.brandIds = value;
-            }
+        onChange(val) {
+            this.$emit('input', this.brandIds);
         },
+        getSelectedItem() {
+            return this.options.filter(item=>{
+                return this.brandIds.indexOf(item.id) > -1 
+            })
+        }
     },
 };
 </script>

+ 1 - 0
src/apps/mobile/main.js

@@ -8,6 +8,7 @@ import '@/common/directives/test'
 import baseCom from '@/common/components/global.js'
 import ElementUI from 'element-ui'
 import '../../assets/font/iconfont.css'
+import '../../assets/font_9ln4buq8doc/iconfont.css'
 import 'element-ui/lib/theme-chalk/index.css'
 import '../../assets/css/MapPoint.css'
 import '../../assets/css/page.styl'

+ 5 - 0
src/apps/mobile/router/index.js

@@ -959,6 +959,11 @@ const router = new Router({
           title: 'error',
       },
     },
+    {
+        path: '*',
+        redirect: '/error/404',
+    },
+
     ...getRoutes(require.context('@/apps/mobile/views', true, /\/router\.js$/))
   ]
 })

+ 12 - 50
src/apps/mobile/views/expert-database-bank/approval/components/addEditDialog.vue

@@ -1,28 +1,9 @@
 <template>
     <div class="add-edit-dialog-container">
-        <el-dialog
-            :title="addEditDialogTitle"
-            :visible.sync="addEditDialogVisible"
-            width="600px"
-            :before-close="close"
-        >
-            <el-form
-                :model="addEditDialogForm"
-                ref="addEditDialogForm"
-                :rules="addEditDialogRules"
-                label-width="90px"
-            >
-                <el-form-item
-                    label="手机号:"
-                    v-if="type === 'add' "
-                    prop="mobile"
-                    class="classify-input"
-                >
-                    <el-input
-                        placeholder="请输入"
-                        v-model="addEditDialogForm.mobile"
-                        class="file-input"
-                    ></el-input>
+        <el-dialog :title="addEditDialogTitle" :visible.sync="addEditDialogVisible" width="600px" :before-close="close">
+            <el-form :model="addEditDialogForm" ref="addEditDialogForm" :rules="addEditDialogRules" label-width="90px">
+                <el-form-item label="手机号:" v-if="type === 'add' " prop="mobile" class="classify-input">
+                    <el-input placeholder="请输入" v-model="addEditDialogForm.mobile" class="file-input"></el-input>
                 </el-form-item>
                 <el-form-item label="昵称:" prop="name">
                     <el-input placeholder="请输入" v-model="addEditDialogForm.name"></el-input>
@@ -31,11 +12,7 @@
                     <el-input placeholder="请输入" v-model="addEditDialogForm.realName"></el-input>
                 </el-form-item>
                 <el-form-item label="擅长品牌:">
-                    <multipleBrand
-                        :brandsId="addEditDialogForm.proficiencyBrand"
-                        @changeBrands="changeBrands"
-                        ref="brand"
-                    ></multipleBrand>
+                    <multipleBrand v-model="addEditDialogForm.proficiencyBrand" ref="brand"></multipleBrand>
                 </el-form-item>
                 <el-form-item label="专家等级" prop="expertLevel">
                     <el-select placeholder="请选择" v-model="addEditDialogForm.expertLevel">
@@ -48,22 +25,12 @@
                     <el-input placeholder="请输入" v-model="addEditDialogForm.serviceFee"></el-input>
                 </el-form-item>
                 <el-form-item label="启用状态:" prop="statuz">
-                    <el-switch
-                        v-model="addEditDialogForm.statuz"
-                        active-text="开"
-                        inactive-text="关"
-                        :active-value="1"
-                        :inactive-value="0"
-                    ></el-switch>
+                    <el-switch v-model="addEditDialogForm.statuz" active-text="开" inactive-text="关" :active-value="1" :inactive-value="0"></el-switch>
                 </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
                 <el-button @click="close()">取 消</el-button>
-                <el-button
-                    type="primary"
-                    @click="submitForm('addEditDialogForm')"
-                    :disabled="submitBtndisabled"
-                >确 定</el-button>
+                <el-button type="primary" @click="submitForm('addEditDialogForm')" :disabled="submitBtndisabled">确 定</el-button>
             </div>
         </el-dialog>
     </div>
@@ -169,9 +136,9 @@ export default {
     },
     methods: {
         submitForm(formName) {
-            this.$refs[formName].validate(valid => {
+            this.$refs[formName].validate((valid) => {
                 if (valid) {
-                    this.submitBtndisabled = true
+                    this.submitBtndisabled = true;
                     let formData = {
                         ...this.addEditDialogForm,
                         checkFlag: 2,
@@ -181,8 +148,7 @@ export default {
                         let message = '新增成功';
                         formData.proficiencyBrand = formData.proficiencyBrand.join(',') || '';
                         addApplyExpert(formData)
-                            .then(res => {
-                                console.log(res);
+                            .then((res) => {
                                 this.completeOperation(message);
                             })
                             .catch(() => {
@@ -190,7 +156,6 @@ export default {
                             });
                     }
                     if (this.type === 'edit') {
-                        console.log(formData);
                         let message = '修改成功';
                         let data = {
                             id: formData.id,
@@ -203,10 +168,8 @@ export default {
                             statuz: formData.statuz,
                             checkFlag: formData.checkFlag,
                         };
-                        console.log(data);
                         updateApplyExpert(data)
-                            .then(res => {
-                                console.log(res);
+                            .then((res) => {
                                 this.completeOperation(message);
                             })
                             .catch(() => {
@@ -225,7 +188,7 @@ export default {
                 let formData = { ...data };
                 let brands = [];
                 if (data.proficiencyBrand) {
-                    brands = data.proficiencyBrand.split(',').map(item => {
+                    brands = data.proficiencyBrand.split(',').map((item) => {
                         return Number(item);
                     });
                 }
@@ -254,7 +217,6 @@ export default {
             this.$emit('queryListData');
         },
         changeBrands(val) {
-            console.log(val);
             this.addEditDialogForm.proficiencyBrand = val;
         },
     },

+ 162 - 29
src/apps/mobile/views/expert-database-bank/approval/components/approvalDialog.vue

@@ -1,8 +1,126 @@
 <template>
     <el-dialog title="审核" :visible.sync="dialogVisible" width="50%" :before-close="close">
-        <el-form :model="ruleForm" ref="ruleForm" :rules="formRules" label-width="100px">
+        <el-form :model="formData" ref="ruleForm" :rules="formRules" label-width="100px">
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="姓名:" prop="name">
+                        <el-input v-model="formData.name" />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="年龄:" prop="age">
+                        <el-input v-model="formData.age" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="性别:" prop="gender">
+                        <el-select v-model="formData.gender">
+                            <el-option label="男" value="1"></el-option>
+                            <el-option label="女" value="2"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="手机号:" prop="mobile">
+                        <el-input v-model="formData.mobile" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="身份证号:" prop="idNumber">
+                        <el-input v-model="formData.idNumber" />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="学历:">
+                        <el-select v-model="formData.eduLevel">
+                            <el-option label="小学" value="1"></el-option>
+                            <el-option label="初中" value="2"></el-option>
+                            <el-option label="中专" value="3"></el-option>
+                            <el-option label="高中" value="4"></el-option>
+                            <el-option label="大专" value="5"></el-option>
+                            <el-option label="本科" value="6"></el-option>
+                            <el-option label="硕士研究生" value="7"></el-option>
+                            <el-option label="博士研究生" value="8"></el-option>
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="专业:" prop="professional">
+                        <el-input v-model="formData.professional" />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="从业时长:" prop="workDate">
+                        <el-input v-model="formData.workDate" />年
+                    </el-form-item>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="公司:" prop="company">
+                        <el-input v-model="formData.company" />
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="工作岗位:" prop="job">
+                        <el-input v-model="formData.job" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="擅长品牌:" prop="proficiencyBrand">
+                        <multipleBrand v-model="formData.proficiencyBrand" ref="brand"></multipleBrand>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="擅长电气:" prop="goodElectrical">
+                        <el-input v-model="formData.goodElectrical" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col :span="12">
+                    <el-form-item label="擅长机械:" prop="goodMechanical">
+                        <el-input v-model="formData.goodMechanical" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col>
+                    <el-form-item label="常驻地点:" prop="residentPlace">
+                        <el-input v-model="formData.residentPlace" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+
+            <el-row>
+                <el-col>
+                    <el-form-item label="工作经历:" prop="workExperience">
+                        <el-input v-model="formData.workExperience" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-row>
+                <el-col>
+                    <el-form-item label="项目经历:" prop="projectExperience">
+                        <el-input v-model="formData.projectExperience" />
+                    </el-form-item>
+                </el-col>
+            </el-row>
             <el-form-item label="专家服务费" prop="serviceFee">
-                <el-input v-model="ruleForm.serviceFee" maxLength="20"></el-input>
+                <el-input v-model="formData.serviceFee" maxLength="20" style="width:240px"></el-input>
             </el-form-item>
         </el-form>
         <span slot="footer" class="dialog-footer">
@@ -13,9 +131,11 @@
 </template>
 
 <script>
+import multipleBrand from '@/apps/mobile/components/multipleBrands';
 import { expertApproval } from '@/apps/mobile/api/expert/index';
 import { validPrice } from '@/apps/mobile/utils/validate';
 export default {
+    components: { multipleBrand },
     data() {
         // 验证费用
         var checkServiceFee = (rule, value, callback) => {
@@ -27,7 +147,6 @@ export default {
         };
         return {
             dialogVisible: false,
-            ruleForm: {},
             formRules: {
                 serviceFee: [
                     {
@@ -48,46 +167,60 @@ export default {
         };
     },
     methods: {
+        changeBrands(val) {
+            this.formData.proficiencyBrand = val;
+        },
         open(data) {
-            console.log(data);
             this.dialogVisible = true;
             this.submitBtndisabled = false;
-            this.formData = { ...data };
+            let tempData = JSON.parse(JSON.stringify(data));
+            if (tempData.proficiencyBrand) {
+                tempData.proficiencyBrand = tempData.proficiencyBrand.split(',').map((item) => {
+                    return Number(item);
+                });
+            }
+            this.formData = tempData;
         },
         close() {
             this.dialogVisible = false;
             this.submitBtndisabled = true;
             this.$refs['ruleForm'].resetFields();
-            this.ruleForm = {};
+            this.formData = {};
         },
         submit() {
-            this.$refs['ruleForm'].validate(valid => {
-            if (valid) {
-                let obj = {
-                    id: this.formData.id,
-                    checkFlag: 1,
-                    serviceFee: this.ruleForm.serviceFee,
-                };
-                console.log(obj);
-                expertApproval(obj)
-                .then(res => {
-                    if (res.statusCode === '1') {
-                        this.$message.success(res.message);
-                    } else {
-                        this.$message.warning(res.message);
-                    }
-                    this.$emit('queryListData');
-                    this.close();
-                })
-                .catch(() => {
-                    this.submitBtndisabled = false;
-                });
-            } else {
+            console.log(this.$refs.brand.getSelectedItem())
+            let brandName = this.$refs.brand.getSelectedItem().map(item=>{
+                return item.name;
+            })
+            let brandIds = this.formData.proficiencyBrand.join(",");
+            this.$refs['ruleForm'].validate((valid) => {
+                if (valid) {
+                    let obj = {
+                        ...this.formData,
+                        checkFlag: 1,
+                        proficiencyBrand: brandIds,
+                        proficiencyBrandName: brandName.join(",")
+                    };
+                    let {createBy,createTime,updateBy,updateTime, ...newObj} = obj
+                    expertApproval(newObj)
+                        .then((res) => {
+                            if (res.statusCode === '1') {
+                                this.$message.success(res.message);
+                            } else {
+                                this.$message.warning(res.message);
+                            }
+                            this.$emit('queryListData');
+                            this.close();
+                        })
+                        .catch(() => {
+                            this.submitBtndisabled = false;
+                        });
+                } else {
                     return false;
                 }
             });
         },
-    }
+    },
 };
 </script>
 

+ 10 - 10
src/apps/mobile/views/expert-database-bank/approval/components/detailsDialog.vue

@@ -188,16 +188,16 @@
                     </el-col>
                     <el-col :span="12">
                         <el-form-item label="证书:">
-                            <span @click="imgOpen(formData.degreeCertificate)">
-                                <el-image
-                                    v-if="formData.degreeCertificate"
-                                    style="width: 100px; height: 100px; cursor: pointer"
-                                    :src="formData.degreeCertificate"
-                                    :preview-src-list="[formData.degreeCertificate]"
-                                    fit="fit"
-                                ></el-image>
-                                <span v-else>暂无图片</span>
-                            </span>
+                            <!-- <span @click="imgOpen(formData.degreeCertificate)"></span> -->
+                            <el-image
+                                v-if="formData.degreeCertificate"
+                                style="width: 100px; height: 100px; cursor: pointer"
+                                :src="formData.degreeCertificate"
+                                :preview-src-list="[formData.degreeCertificate]"
+                                fit="fit"
+                            ></el-image>
+                            <span v-else>暂无图片</span>
+                            
                         </el-form-item>
                     </el-col>
                 </el-row>

+ 0 - 1
src/apps/mobile/views/expert-database-bank/approval/index.vue

@@ -184,7 +184,6 @@ export default {
             };
             queryExpertApplyList(obj)
                 .then(res => {
-                    console.log('res----',res);
                     if(res.statusCode == "10"){
                         this.$router.replace("/login");
                     }

+ 1 - 2
src/apps/mobile/views/expert-database-bank/expert/components/addEditDialog.vue

@@ -33,8 +33,7 @@
                 <el-form-item label="擅长品牌:">
                     <multipleBrand
                         ref="brand"
-                        :brandsId="addEditDialogForm.proficiencyBrand"
-                        @changeBrands="changeBrands"
+                        v-model="addEditDialogForm.proficiencyBrand"
                     ></multipleBrand>
                 </el-form-item>
                 <el-form-item label="擅长:" prop="proficiency">

+ 1 - 2
src/apps/mobile/views/expert-database-bank/expert/components/rewardPunishmentDialog.vue

@@ -200,14 +200,13 @@ export default {
         },
         getCouponsList() {
             let obj = {
-                checkFalg: 1,
+                checkFalg: [1],
                 type: 2,
                 statuz: 1,
                 ...this.page,
             };
             queryCouponsList(obj)
                 .then(res => {
-                    console.log(res);
                     this.options = res.data.records;
                 })
                 .catch();

+ 17 - 15
src/apps/mobile/views/operation-bank/other-settings/approval.vue

@@ -40,21 +40,23 @@
                         <template slot="append">米</template>
                     </el-input>
                 </el-form-item>
-                <el-form-item label="间隔时间:" prop="intervalTime">
-                    <el-input v-model="formData.intervalTime" :disabled="!show" placeholder="">
-                        <template slot="append">分钟</template>
-                    </el-input>
-                </el-form-item>
-                <el-form-item label="经纬度推送开关:">
-                    <el-switch
-                        v-model="formData.isPush"
-                        disabled
-                        active-text="开"
-                        inactive-text="关"
-                        :active-value="1"
-                        :inactive-value="0"
-                    ></el-switch>
-                </el-form-item>
+                <div style="display: flex">
+                    <el-form-item label="经纬度推送开关:">
+                        <el-switch
+                            v-model="formData.isPush"
+                            disabled
+                            active-text="开"
+                            inactive-text="关"
+                            :active-value="1"
+                            :inactive-value="0"
+                        ></el-switch>
+                    </el-form-item>
+                    <el-form-item label="间隔时间:" prop="intervalTime">
+                        <el-input v-model="formData.intervalTime" :disabled="!show" placeholder="">
+                            <template slot="append">分钟</template>
+                        </el-input>
+                    </el-form-item>
+                </div>
             </el-form>
 
             <div class="btn">

+ 17 - 15
src/apps/mobile/views/operation-bank/other-settings/index.vue

@@ -41,21 +41,23 @@
                         <template slot="append">米</template>
                     </el-input>
                 </el-form-item>
-                <el-form-item label="间隔时间:" prop="intervalTime">
-                    <el-input v-model="formData.intervalTime" :disabled="!show" placeholder="请输入" maxlength="10">
-                        <template slot="append">分钟</template>
-                    </el-input>
-                </el-form-item>
-                <el-form-item label="经纬度推送开关:" prop="isPush">
-                    <el-switch
-                        v-model="formData.isPush"
-                        active-text="开"
-                        inactive-text="关"
-                        :active-value="1"
-                        :inactive-value="0"
-                        :disabled="!show"
-                    ></el-switch>
-                </el-form-item>
+                <div style="display: flex">
+                    <el-form-item label="经纬度推送开关:" prop="isPush">
+                        <el-switch
+                            v-model="formData.isPush"
+                            active-text="开"
+                            inactive-text="关"
+                            :active-value="1"
+                            :inactive-value="0"
+                            :disabled="!show"
+                        ></el-switch>
+                    </el-form-item>
+                    <el-form-item label="间隔时间:" prop="intervalTime">
+                        <el-input v-model="formData.intervalTime" :disabled="!show" placeholder="请输入" maxlength="10">
+                            <template slot="append">分钟</template>
+                        </el-input>
+                    </el-form-item>
+                </div>
             </el-form>
 
             <div class="btn">

+ 539 - 0
src/assets/font_9ln4buq8doc/demo.css

@@ -0,0 +1,539 @@
+/* Logo 字体 */
+@font-face {
+  font-family: "iconfont logo";
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
+  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
+    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
+}
+
+.logo {
+  font-family: "iconfont logo";
+  font-size: 160px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+/* tabs */
+.nav-tabs {
+  position: relative;
+}
+
+.nav-tabs .nav-more {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  height: 42px;
+  line-height: 42px;
+  color: #666;
+}
+
+#tabs {
+  border-bottom: 1px solid #eee;
+}
+
+#tabs li {
+  cursor: pointer;
+  width: 100px;
+  height: 40px;
+  line-height: 40px;
+  text-align: center;
+  font-size: 16px;
+  border-bottom: 2px solid transparent;
+  position: relative;
+  z-index: 1;
+  margin-bottom: -1px;
+  color: #666;
+}
+
+
+#tabs .active {
+  border-bottom-color: #f00;
+  color: #222;
+}
+
+.tab-container .content {
+  display: none;
+}
+
+/* 页面布局 */
+.main {
+  padding: 30px 100px;
+  width: 960px;
+  margin: 0 auto;
+}
+
+.main .logo {
+  color: #333;
+  text-align: left;
+  margin-bottom: 30px;
+  line-height: 1;
+  height: 110px;
+  margin-top: -50px;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.main .logo a {
+  font-size: 160px;
+  color: #333;
+}
+
+.helps {
+  margin-top: 40px;
+}
+
+.helps pre {
+  padding: 20px;
+  margin: 10px 0;
+  border: solid 1px #e7e1cd;
+  background-color: #fffdef;
+  overflow: auto;
+}
+
+.icon_lists {
+  width: 100% !important;
+  overflow: hidden;
+  *zoom: 1;
+}
+
+.icon_lists li {
+  width: 100px;
+  margin-bottom: 10px;
+  margin-right: 20px;
+  text-align: center;
+  list-style: none !important;
+  cursor: default;
+}
+
+.icon_lists li .code-name {
+  line-height: 1.2;
+}
+
+.icon_lists .icon {
+  display: block;
+  height: 100px;
+  line-height: 100px;
+  font-size: 42px;
+  margin: 10px auto;
+  color: #333;
+  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
+  -moz-transition: font-size 0.25s linear, width 0.25s linear;
+  transition: font-size 0.25s linear, width 0.25s linear;
+}
+
+.icon_lists .icon:hover {
+  font-size: 100px;
+}
+
+.icon_lists .svg-icon {
+  /* 通过设置 font-size 来改变图标大小 */
+  width: 1em;
+  /* 图标和文字相邻时,垂直对齐 */
+  vertical-align: -0.15em;
+  /* 通过设置 color 来改变 SVG 的颜色/fill */
+  fill: currentColor;
+  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
+      normalize.css 中也包含这行 */
+  overflow: hidden;
+}
+
+.icon_lists li .name,
+.icon_lists li .code-name {
+  color: #666;
+}
+
+/* markdown 样式 */
+.markdown {
+  color: #666;
+  font-size: 14px;
+  line-height: 1.8;
+}
+
+.highlight {
+  line-height: 1.5;
+}
+
+.markdown img {
+  vertical-align: middle;
+  max-width: 100%;
+}
+
+.markdown h1 {
+  color: #404040;
+  font-weight: 500;
+  line-height: 40px;
+  margin-bottom: 24px;
+}
+
+.markdown h2,
+.markdown h3,
+.markdown h4,
+.markdown h5,
+.markdown h6 {
+  color: #404040;
+  margin: 1.6em 0 0.6em 0;
+  font-weight: 500;
+  clear: both;
+}
+
+.markdown h1 {
+  font-size: 28px;
+}
+
+.markdown h2 {
+  font-size: 22px;
+}
+
+.markdown h3 {
+  font-size: 16px;
+}
+
+.markdown h4 {
+  font-size: 14px;
+}
+
+.markdown h5 {
+  font-size: 12px;
+}
+
+.markdown h6 {
+  font-size: 12px;
+}
+
+.markdown hr {
+  height: 1px;
+  border: 0;
+  background: #e9e9e9;
+  margin: 16px 0;
+  clear: both;
+}
+
+.markdown p {
+  margin: 1em 0;
+}
+
+.markdown>p,
+.markdown>blockquote,
+.markdown>.highlight,
+.markdown>ol,
+.markdown>ul {
+  width: 80%;
+}
+
+.markdown ul>li {
+  list-style: circle;
+}
+
+.markdown>ul li,
+.markdown blockquote ul>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown>ul li p,
+.markdown>ol li p {
+  margin: 0.6em 0;
+}
+
+.markdown ol>li {
+  list-style: decimal;
+}
+
+.markdown>ol li,
+.markdown blockquote ol>li {
+  margin-left: 20px;
+  padding-left: 4px;
+}
+
+.markdown code {
+  margin: 0 3px;
+  padding: 0 5px;
+  background: #eee;
+  border-radius: 3px;
+}
+
+.markdown strong,
+.markdown b {
+  font-weight: 600;
+}
+
+.markdown>table {
+  border-collapse: collapse;
+  border-spacing: 0px;
+  empty-cells: show;
+  border: 1px solid #e9e9e9;
+  width: 95%;
+  margin-bottom: 24px;
+}
+
+.markdown>table th {
+  white-space: nowrap;
+  color: #333;
+  font-weight: 600;
+}
+
+.markdown>table th,
+.markdown>table td {
+  border: 1px solid #e9e9e9;
+  padding: 8px 16px;
+  text-align: left;
+}
+
+.markdown>table th {
+  background: #F7F7F7;
+}
+
+.markdown blockquote {
+  font-size: 90%;
+  color: #999;
+  border-left: 4px solid #e9e9e9;
+  padding-left: 0.8em;
+  margin: 1em 0;
+}
+
+.markdown blockquote p {
+  margin: 0;
+}
+
+.markdown .anchor {
+  opacity: 0;
+  transition: opacity 0.3s ease;
+  margin-left: 8px;
+}
+
+.markdown .waiting {
+  color: #ccc;
+}
+
+.markdown h1:hover .anchor,
+.markdown h2:hover .anchor,
+.markdown h3:hover .anchor,
+.markdown h4:hover .anchor,
+.markdown h5:hover .anchor,
+.markdown h6:hover .anchor {
+  opacity: 1;
+  display: inline-block;
+}
+
+.markdown>br,
+.markdown>p>br {
+  clear: both;
+}
+
+
+.hljs {
+  display: block;
+  background: white;
+  padding: 0.5em;
+  color: #333333;
+  overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+  color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+  color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+  color: #a71d5d;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+  color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+  color: #63a35c;
+}
+
+.hljs-tag {
+  color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #795da3;
+}
+
+.hljs-addition {
+  color: #55a532;
+  background-color: #eaffea;
+}
+
+.hljs-deletion {
+  color: #bd2c00;
+  background-color: #ffecec;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
+
+/* 代码高亮 */
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+code[class*="language-"],
+pre[class*="language-"] {
+  color: black;
+  background: none;
+  text-shadow: 0 1px white;
+  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+  text-align: left;
+  white-space: pre;
+  word-spacing: normal;
+  word-break: normal;
+  word-wrap: normal;
+  line-height: 1.5;
+
+  -moz-tab-size: 4;
+  -o-tab-size: 4;
+  tab-size: 4;
+
+  -webkit-hyphens: none;
+  -moz-hyphens: none;
+  -ms-hyphens: none;
+  hyphens: none;
+}
+
+pre[class*="language-"]::-moz-selection,
+pre[class*="language-"] ::-moz-selection,
+code[class*="language-"]::-moz-selection,
+code[class*="language-"] ::-moz-selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+pre[class*="language-"]::selection,
+pre[class*="language-"] ::selection,
+code[class*="language-"]::selection,
+code[class*="language-"] ::selection {
+  text-shadow: none;
+  background: #b3d4fc;
+}
+
+@media print {
+
+  code[class*="language-"],
+  pre[class*="language-"] {
+    text-shadow: none;
+  }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+  padding: 1em;
+  margin: .5em 0;
+  overflow: auto;
+}
+
+:not(pre)>code[class*="language-"],
+pre[class*="language-"] {
+  background: #f5f2f0;
+}
+
+/* Inline code */
+:not(pre)>code[class*="language-"] {
+  padding: .1em;
+  border-radius: .3em;
+  white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+  color: slategray;
+}
+
+.token.punctuation {
+  color: #999;
+}
+
+.namespace {
+  opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+  color: #905;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+  color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+  color: #9a6e3a;
+  background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+  color: #07a;
+}
+
+.token.function,
+.token.class-name {
+  color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+  color: #e90;
+}
+
+.token.important,
+.token.bold {
+  font-weight: bold;
+}
+
+.token.italic {
+  font-style: italic;
+}
+
+.token.entity {
+  cursor: help;
+}

+ 192 - 0
src/assets/font_9ln4buq8doc/demo_index.html

@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8"/>
+  <title>IconFont Demo</title>
+  <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico" type="image/x-icon"/>
+  <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64.svg"/>
+  <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
+  <link rel="stylesheet" href="demo.css">
+  <link rel="stylesheet" href="iconfont.css">
+  <script src="iconfont.js"></script>
+  <!-- jQuery -->
+  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
+  <!-- 代码高亮 -->
+  <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
+</head>
+<body>
+  <div class="main">
+    <h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">&#xe86b;</a></h1>
+    <div class="nav-tabs">
+      <ul id="tabs" class="dib-box">
+        <li class="dib active"><span>Unicode</span></li>
+        <li class="dib"><span>Font class</span></li>
+        <li class="dib"><span>Symbol</span></li>
+      </ul>
+      
+    </div>
+    <div class="tab-container">
+      <div class="content unicode" style="display: block;">
+          <ul class="icon_lists dib-box">
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe62e;</span>
+                <div class="name">扳手</div>
+                <div class="code-name">&amp;#xe62e;</div>
+              </li>
+          
+          </ul>
+          <div class="article markdown">
+          <h2 id="unicode-">Unicode 引用</h2>
+          <hr>
+
+          <p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
+          <ul>
+            <li>兼容性最好,支持 IE6+,及所有现代浏览器。</li>
+            <li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
+            <li>但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。</li>
+          </ul>
+          <blockquote>
+            <p>注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式</p>
+          </blockquote>
+          <p>Unicode 使用步骤如下:</p>
+          <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
+<pre><code class="language-css"
+>@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.eot');
+  src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+      url('iconfont.woff2') format('woff2'),
+      url('iconfont.woff') format('woff'),
+      url('iconfont.ttf') format('truetype'),
+      url('iconfont.svg#iconfont') format('svg');
+}
+</code></pre>
+          <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
+<pre><code class="language-css"
+>.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+</code></pre>
+          <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
+<pre>
+<code class="language-html"
+>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
+</code></pre>
+          <blockquote>
+            <p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
+          </blockquote>
+          </div>
+      </div>
+      <div class="content font-class">
+        <ul class="icon_lists dib-box">
+          
+          <li class="dib">
+            <span class="icon iconfont icon-editor2"></span>
+            <div class="name">
+              扳手
+            </div>
+            <div class="code-name">.icon-editor2
+            </div>
+          </li>
+          
+        </ul>
+        <div class="article markdown">
+        <h2 id="font-class-">font-class 引用</h2>
+        <hr>
+
+        <p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
+        <p>与 Unicode 使用方式相比,具有如下特点:</p>
+        <ul>
+          <li>兼容性良好,支持 IE8+,及所有现代浏览器。</li>
+          <li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
+          <li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
+          <li>不过因为本质上还是使用的字体,所以多色图标还是不支持的。</li>
+        </ul>
+        <p>使用步骤如下:</p>
+        <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
+<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
+</code></pre>
+        <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
+<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
+</code></pre>
+        <blockquote>
+          <p>"
+            iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
+        </blockquote>
+      </div>
+      </div>
+      <div class="content symbol">
+          <ul class="icon_lists dib-box">
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-editor2"></use>
+                </svg>
+                <div class="name">扳手</div>
+                <div class="code-name">#icon-editor2</div>
+            </li>
+          
+          </ul>
+          <div class="article markdown">
+          <h2 id="symbol-">Symbol 引用</h2>
+          <hr>
+
+          <p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
+            这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
+          <ul>
+            <li>支持多色图标了,不再受单色限制。</li>
+            <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
+            <li>兼容性较差,支持 IE9+,及现代浏览器。</li>
+            <li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
+          </ul>
+          <p>使用步骤如下:</p>
+          <h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
+<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
+</code></pre>
+          <h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
+<pre><code class="language-html">&lt;style&gt;
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+&lt;/style&gt;
+</code></pre>
+          <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
+<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
+  &lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
+&lt;/svg&gt;
+</code></pre>
+          </div>
+      </div>
+
+    </div>
+  </div>
+  <script>
+  $(document).ready(function () {
+      $('.tab-container .content:first').show()
+
+      $('#tabs li').click(function (e) {
+        var tabContent = $('.tab-container .content')
+        var index = $(this).index()
+
+        if ($(this).hasClass('active')) {
+          return
+        } else {
+          $('#tabs li').removeClass('active')
+          $(this).addClass('active')
+
+          tabContent.hide().eq(index).fadeIn()
+        }
+      })
+    })
+  </script>
+</body>
+</html>

文件差異過大導致無法顯示
+ 25 - 0
src/assets/font_9ln4buq8doc/iconfont.css


二進制
src/assets/font_9ln4buq8doc/iconfont.eot


文件差異過大導致無法顯示
+ 1 - 0
src/assets/font_9ln4buq8doc/iconfont.js


+ 16 - 0
src/assets/font_9ln4buq8doc/iconfont.json

@@ -0,0 +1,16 @@
+{
+  "id": "",
+  "name": "",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "880429",
+      "name": "扳手",
+      "font_class": "editor2",
+      "unicode": "e62e",
+      "unicode_decimal": 58926
+    }
+  ]
+}

文件差異過大導致無法顯示
+ 29 - 0
src/assets/font_9ln4buq8doc/iconfont.svg


二進制
src/assets/font_9ln4buq8doc/iconfont.ttf


二進制
src/assets/font_9ln4buq8doc/iconfont.woff


二進制
src/assets/font_9ln4buq8doc/iconfont.woff2