Browse Source

图库开发

xiaohaizhao 1 year ago
parent
commit
b08c7b151d

+ 0 - 0
packageA/advertising/modules/bottom1.vue → components/bottomModules/bottom1.vue


+ 4 - 14
components/filtrate.vue

@@ -46,10 +46,6 @@ export default {
                 interrupt: false,//中断
             }]
         },
-        arrName: {
-            type: String,
-            default: "filtrateList"
-        },
         onFiltration: {
             type: Function
         },
@@ -60,7 +56,7 @@ export default {
     watch: {
         filtrateList: function (newVal) {
             if (newVal) {
-                this.list = JSON.parse(JSON.stringify(newVal))
+                this.list = JSON.parse(JSON.stringify(newVal));
             } else {
 
             }
@@ -91,7 +87,7 @@ export default {
         },
         onChange(option, index) {
             let item = this.list[index];
-            this.$set(item, 'value', option[item.selected]);
+            this.$set(item, 'value', item.selected ? option[item.selected] : option);
             try {
                 if (item.isAll) item.selectObj = option;
             } catch (error) { }
@@ -99,13 +95,7 @@ export default {
             if (item.interrupt) this.$emit("onInterrupt", { item, index, option })
         },
         onReset() {
-            let page = getCurrentPages()[getCurrentPages().length - 1];
-            // #ifdef H5
-            this.list = JSON.parse(JSON.stringify(page[this.arrName]))
-            // #endif
-            // #ifndef H5
-            this.list = JSON.parse(JSON.stringify(page.data[this.arrName]))
-            // #endif
+            this.list = JSON.parse(JSON.stringify(this.filtrateList));
         },
         onConfirm() {
             let obj = {};
@@ -117,7 +107,7 @@ export default {
                         obj[v.key] = v.value || v.defaultVal;
                     }
                 } else {
-                    obj[v.key] = v.rang.find(s => s[v.selected] == v.value || s[v.selected] == v.defaultVal);
+                    obj[v.key] = '';
                 }
             })
             this.$emit("onFiltration", obj)

+ 1 - 1
packageA/advertising/modules/page.vue

@@ -10,7 +10,7 @@
 
 <script>
 import { viewImage } from "../../../utils/settleFiles";
-import bottom1 from "./bottom1.vue";
+import bottom1 from "../../../components/bottomModules/bottom1.vue";
 export default {
     name: "advertisingPage",
     components: { bottom1 },

+ 318 - 0
packageCase/imgs/detail.vue

@@ -0,0 +1,318 @@
+<template>
+    <My_listbox ref="List" @getlist="getDetail">
+
+        <swiper class="swiper" v-if="slides.length" :indicator-dots="slides.length > 1" indicator-color="#DC808B"
+            indicator-active-color="#C30D23">
+            <swiper-item class="swiper-item" v-for="item in slides" :key="item.url">
+                <image class="image" :src="item.cover" mode="aspectFill" lazy-load="true" />
+                <view class="qrcode" @click="saveQrcode">
+                    <text class="iconfont icon-xiazai" />
+                    二维码
+                </view>
+            </swiper-item>
+        </swiper>
+
+        <view class="head">
+            <view class="line1">
+                <view class="left">
+                    <text class="iconfont icon-biaoqian" />
+                    {{ detail.renderingstype }}
+                </view>
+                <view class="right" hover-class="navigator-hover"
+                    @click="collectLoading ? '' : handleCollect(detail.iscollect)">
+                    <u-loading-icon v-if="collectLoading" size="20" />
+                    <block v-else>
+                        <text v-if="detail.iscollect == 0" class="iconfont icon-weishoucang" />
+                        <text v-else class="iconfont icon-yishoucang" style="color: #FFC300;" />
+                        收藏
+                    </block>
+                </view>
+            </view>
+            <view class="title">{{ detail.title }}</view>
+            <view class="subtitle" v-if="detail.subtitle">{{ detail.subtitle }}</view>
+        </view>
+
+        <view class="introduce">
+            <view class="introduce-title">
+                产品介绍
+            </view>
+            <view class="introduce-text">
+                {{ detail.notes }}
+            </view>
+        </view>
+        <bottom1 />
+        <view style="position: absolute;z-index: -999;top: 0;">
+            <l-painter ref="painter" hidden css="padding:10px;background:#fff;width: 148px;">
+                <l-painter-view>
+                    <l-painter-view css="margin: 0 auto;width: 128px;">
+                        <l-painter-qrcode :text="detail.appleturl" css="width: 128px; height: 128px;color:#000;" />
+                    </l-painter-view>
+                    <l-painter-view css="width: 108px;text-align: center;margin: 10px auto 0;">
+                        <l-painter-text :text="detail.title" />
+                    </l-painter-view>
+                </l-painter-view>
+            </l-painter>
+        </view>
+    </My_listbox>
+</template>
+
+<script>
+import bottom1 from "../../components/bottomModules/bottom1.vue"
+import lPainter from "../../uni_modules/lime-painter/components/l-painter/l-painter.vue"
+import lPainterText from "../../uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue"
+import lPainterView from "../../uni_modules/lime-painter/components/l-painter-view/l-painter-view.vue"
+import lPainterQrcode from "../../uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue"
+export default {
+    components: { bottom1, lPainter, lPainterQrcode, lPainterText, lPainterView },
+    data() {
+        return {
+            sat_sharematerialid: null,
+            detail: {},
+            slides: [],
+            collectLoading: false
+        }
+    },
+    onLoad(options) {
+        this.sat_sharematerialid = options.id;
+        this.getDetail();
+    },
+    methods: {
+        getDetail() {
+            this.$Http.basic({
+                "id": 20240415164302,
+                "content": {
+                    "sat_sharematerialid": this.sat_sharematerialid
+                },
+            }).then(res => {
+                this.$refs.List.RefreshToComplete()
+                console.log("获取效果图详情", res)
+                if (this.cutoff(res.msg)) return;
+                this.detail = res.data;
+                this.slides = res.data.attinfos_pic.map(v => {
+                    return {
+                        cover: this.getSpecifiedImage(v.attinfos[0]),
+                        url: v.attinfos[0].url
+                    }
+                })
+                uni.setNavigationBarTitle({
+                    title: res.data.title
+                });
+            })
+        },
+        handleCollect(iscollect) {
+            this.collectLoading = true;
+            this.$Http.basic({
+                "id": 20240416133702,
+                "content": {
+                    "ownertable": "sat_sharematerial",
+                    "ownerid": this.detail.sat_sharematerialid,
+                    "type": 1
+                },
+            }).then(res => {
+                console.log("收藏", res)
+                this.collectLoading = false;
+                if (this.cutoff(res.msg)) return;
+                this.detail.iscollect = iscollect ? 0 : 1
+            })
+        },
+        saveQrcode() {
+            let that = this;
+            that.$refs.painter.canvasToTempFilePathSync({
+                fileType: "jpg",
+                // 如果返回的是base64是无法使用 saveImageToPhotosAlbum,需要设置 pathType为url
+                pathType: 'url',
+                quality: 1,
+                success: (res) => {
+                    console.log(res.tempFilePath);
+                    // 非H5 保存到相册
+                    // H5 提示用户长按图另存
+                    uni.saveImageToPhotosAlbum({
+                        filePath: res.tempFilePath,
+                        success: function (e) {
+                            uni.showModal({
+                                title: '提示',
+                                content: '图片已保存到系统相册',
+                                showCancel: false
+                            })
+                            that.loading = false;
+                            this.$Http.basic({
+                                "id": 20240319142702,
+                                "content": {
+                                    sat_sharematerialid: that.detail.sat_sharematerialid, type: 1
+                                }
+                            }).then(res => {
+                                console.log(type, '记录', res)
+                            })
+
+                        },
+                        fail: ({ errMsg }) => {
+                            if (errMsg == 'saveImageToPhotosAlbum:fail auth deny') {
+                                uni.showModal({
+                                    title: '提示',
+                                    content: '请授权添加到相册权限后再试!',
+                                    showCancel: false,
+                                    complete: (complete) => {
+                                        uni.openSetting({
+                                            success: res => {
+                                                that.loading = false;
+                                                if (res.authSetting['scope.writePhotosAlbum']) {
+                                                    this.saveTheImage()
+                                                } else {
+                                                    uni.showModal({
+                                                        title: '提示',
+                                                        content: '未获取授权!已取消保存',
+                                                        showCancel: false,
+                                                    })
+                                                }
+                                            }
+                                        })
+                                    },
+                                })
+                            } else {
+                                that.loading = false;
+                                uni.showModal({
+                                    title: '提示',
+                                    content: '已取消保存',
+                                    showCancel: false,
+                                })
+                            }
+                        },
+                    });
+                },
+            });
+        }, getSheraDate() {
+            let detail = this.detail
+            return {
+                title: detail.title, // 标题
+                path: "/packageCase/imgs/detail?id=" + detail.sat_sharematerialid, // 分享路径
+                imageUrl: this.detail.attinfos.find(v => v.usetype == "sat_sharematerial").url || ""// 分享图
+            };
+        }
+    },
+    onShareAppMessage(res) {
+        return this.getSheraDate()
+    },
+    onShareTimeline() {
+        return this.getSheraDate()
+    }
+}
+</script>
+
+<style lang="scss">
+.swiper {
+    width: 375px;
+    height: 231px;
+    background: #F5F5F5;
+    border-radius: 5px;
+    box-sizing: border-box;
+
+    .swiper-item {
+        position: relative;
+        width: 100%;
+        height: 100%;
+
+        .image {
+            width: 100%;
+            height: 100%;
+        }
+
+        .qrcode {
+            position: absolute;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            top: 10px;
+            right: 10px;
+            width: 70px;
+            height: 25px;
+            background: rgba($color: #333333, $alpha: 0.5);
+            font-size: 12px;
+            color: #FFFFFF;
+
+            .iconfont {
+                margin-right: 4px;
+            }
+        }
+    }
+
+
+}
+
+.head {
+    background: #fff;
+    padding: 8px 10px 15px;
+
+    .line1 {
+        display: flex;
+        justify-content: space-between;
+        align-items: flex-end;
+
+        .left {
+            .iconfont {
+                margin-right: 4px;
+                font-size: 12px;
+            }
+
+            line-height: 17px;
+            font-size: 12px;
+            color: #999999;
+        }
+
+        .right {
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            width: 80px;
+            height: 24px;
+            border-radius: 12px;
+            border: 1px solid #CCCCCC;
+            font-family: PingFang SC, PingFang SC;
+            font-size: 12px;
+            color: #333333;
+
+            .iconfont {
+                margin-right: 5px;
+            }
+        }
+    }
+
+    .title {
+        line-height: 20px;
+        font-family: PingFang SC, PingFang SC;
+        font-weight: bold;
+        font-size: 14px;
+        color: #333333;
+        margin: 10px 0;
+    }
+
+    .subtitle {
+        line-height: 17px;
+        font-family: PingFang SC, PingFang SC;
+        font-size: 12px;
+        color: #666666;
+    }
+}
+
+.introduce {
+    background: #fff;
+    margin-top: 10px;
+    padding: 0 10px;
+
+    &-title {
+        line-height: 45px;
+        background: #FFFFFF;
+        font-family: PingFang SC, PingFang SC;
+        font-weight: bold;
+        font-size: 16px;
+        color: #333333;
+    }
+
+    &-text {
+        line-height: 20px;
+        font-family: PingFang SC, PingFang SC;
+        font-size: 14px;
+        color: #333333;
+        padding-bottom: 10px;
+    }
+}
+</style>

+ 11 - 0
pages.json

@@ -38,7 +38,18 @@
 		}, {
 			"path": "resourceLibrary/detail"
 		}]
+	}, {
+		"root": "packageCase",
+		"pages": [{
+			"path": "imgs/detail"
+		}]
 	}],
+	"preloadRule": {
+		"pages/login/login": {
+			"network": "all",
+			"packages": ["packageCase", "packageA"]
+		}
+	},
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "营销工具",

+ 6 - 3
pages/index/index.vue

@@ -1,24 +1,27 @@
 <template>
 	<view>
 		<index ref="首页" v-show="page == '首页'" />
+		<my-case ref="案例" v-show="page == '案例'" />
 		<dataBank ref="资料库" v-show="page == '资料库'" />
 		<school ref="商学院" v-show="page == '商学院'" />
+
 		<bottom-suspension-frame ref="pages" @onChange="pageChange" />
 	</view>
 </template>
 
 <script>
 import index from './index/index.vue'
+import myCase from './index/myCase.vue'
 import dataBank from './cloud/dataBank.vue'
 import school from './cloud/school.vue'
 
 import bottomSuspensionFrame from "./modules/bottomSuspensionFrame.vue";
 export default {
-	components: { bottomSuspensionFrame, index, dataBank, school },
+	components: { bottomSuspensionFrame, index, myCase, dataBank, school },
 	data() {
 		return {
-			swiperItemID: 'cloud',
-			page: '资料库'
+			swiperItemID: 'index',
+			page: '案例'
 		}
 	},
 	onShow() {

+ 130 - 0
pages/index/index/casePages/imgs.vue

@@ -0,0 +1,130 @@
+<template>
+    <view>
+        <tabs ref="tabs" typename="renderingstype" @getList="getList">
+            <view class="tab-item">
+                电器系统
+            </view>
+        </tabs>
+        <My_listbox ref="List" @getlist="getList" :bottomHeight="70">
+            <navigator class="list-item" :url="'/packageCase/imgs/detail?id=' + item.sat_sharematerialid"
+                @click="addReadcount(index)" v-for="(item, index) in list" hover-class="navigator-hover"
+                :key="item.sat_coursewareid">
+                <image class="image" :src="item.cover" mode="aspectFill" lazy-load="true" />
+                <view class="tips">
+                    <view class="label u-line-1">{{ item.title }}</view>
+                    <view class="iconfont icon-liulanliang"><text style="padding-left: 5px;" />{{ item.readcount }}</view>
+                </view>
+            </navigator>
+        </My_listbox>
+    </view>
+</template>
+
+<script>
+import tabs from "./tabs.vue"
+export default {
+    components: { tabs },
+    name: "imgsindex",
+    data() {
+        return {
+            "content": {
+                "where": {
+                    "condition": "",
+                    "status": "发布",
+                    "begindate_create": "",
+                    "enddate_create": "",
+                    "begindate": "",
+                    "enddate": "",
+                    "ispanorama": "", //是否全景,
+                }
+            },
+            list: [],
+            isInitialize: false,
+        }
+    },
+    methods: {
+        init() {
+            if (this.isInitialize) return;
+            this.getList();
+        },
+        getList(init = false) {
+            return new Promise((resolve, reject) => {
+                if (this.paging(this.content, init)) return;
+                let content = this.content;
+                let ref = this.$refs.tabs;
+                content.where = {
+                    ...content.where,
+                    ...ref.where,
+                    renderingstype: ref.active
+                }
+                this.$Http.basic({
+                    "id": 20240415164402,
+                    content: this.content
+                }).then(res => {
+                    resolve()
+                    this.$refs.List.RefreshToComplete()
+                    console.log("获取效果图列表", res)
+                    if (this.cutoff(res.msg)) return;
+                    this.isInitialize = true;
+                    res.data = res.data.map(v => {
+                        v.cover = v.attinfos.length ? this.getSpecifiedImage(v.attinfos.find(s => s.usetype == "sat_sharematerial") || v.attinfos[0]) : ''
+                        return v
+                    })
+                    this.list = res.pageNumber == 1 ? res.data : this.list.concat(res.data);
+                    this.content = this.$refs.List.paging(this.content, res)
+                })
+            })
+        },
+        addReadcount(index) {
+            this.$set(this.list[index], 'readcount', this.list[index].readcount - 0 + 1)
+        }
+    },
+}
+</script>
+
+<style lang="scss" scoped>
+.tab-item {
+    flex-shrink: 0;
+    height: 24px;
+    line-height: 24px;
+    padding: 0 5px;
+    background: #F2F2F2;
+    border-radius: 12px;
+    margin-right: 5px;
+}
+
+.list-item {
+    width: 355px;
+    margin: 0 auto 20px;
+    border-radius: 5px;
+    overflow: hidden;
+
+    .image {
+        width: 355px;
+        height: 240px;
+        border-radius: 5px;
+        overflow: hidden;
+    }
+
+    .tips {
+        display: flex;
+        justify-content: space-between;
+        height: 20px;
+        line-height: 20pxF;
+
+        .title {
+            flex: 1;
+            font-family: PingFang SC, PingFang SC;
+            font-size: 14px;
+            color: #333333;
+            margin-top: 10px;
+            margin-bottom: 20px;
+        }
+
+        .iconfont {
+            font-family: Source Han Sans SC, Source Han Sans SC;
+            font-size: 12px;
+            color: #999999;
+        }
+    }
+}
+</style>

+ 150 - 0
pages/index/index/casePages/tabs.vue

@@ -0,0 +1,150 @@
+<template>
+    <view>
+        <view class="filtration">
+            <slot />
+            <scroll-view class="scroll-view" :scroll-left="scrollLeft" scroll-x scroll-with-animation>
+                <view class="tab-box">
+                    <view class="tab-item tabitem" :id="item.remarks" :class="item.value == active ? 'tab-item-active' : ''"
+                        v-for="(item, index) in tabs" :key="item.remarks" @click="changeActive(item.value, index)">
+                        {{ item.remarks }}
+                    </view>
+                </view>
+            </scroll-view>
+            <view class="filtration-but" @click="openFiltrate">
+                筛选
+                <text class="iconfont icon-shaixuan" />
+            </view>
+        </view>
+        <filtrate ref="Filtrate" :filtrateList="filtrateList" @onFiltration="onFiltration" />
+    </view>
+</template>
+
+<script>
+export default {
+    name: "tabs",
+    props: {
+        typename: String,
+        getList: Function
+    },
+    data() {
+        return {
+            active: "",
+            tabs: [],
+            filtrateList: [],
+            widths: [0],
+            scrollLeft: 0,
+            where: {}
+        }
+    },
+    created() {
+        this.getCustomClass(this.typename).then(tabs => {
+            this.tabs = tabs;
+            if (tabs.length) {
+                this.active = tabs[0].value;
+                setTimeout(() => {
+                    uni.createSelectorQuery().in(this).selectAll(`.tabitem`).boundingClientRect(list => {
+                        let count = 0;
+                        list.forEach((v, i) => {
+                            if (i) this.widths.push(count)
+                            count += v.right;
+                        })
+                    }).exec();
+                }, 100);
+            }
+        });
+    },
+    methods: {
+        changeActive(active, index) {
+            this.scrollLeft = this.widths[index]
+            if (this.active == active) return;
+            this.active = active
+            this.$emit("getList", true)
+        },
+        openFiltrate() {
+            if (this.filtrateList.length == 0) {
+                Promise.all(['picturespace', 'picturestyle', 'picturespec'].map(v => this.getCustomClass(v))).then(res => {
+                    let list = res.map(v => [{ remarks: "全部", value: "" }].concat(v));
+                    this.filtrateList = [{
+                        title: "空间",
+                        key: 'space',
+                        showKey: "remarks",
+                        selected: "value",
+                        value: "",
+                        defaultVal: "",
+                        rang: list[0],
+                    }, {
+                        title: "风格",
+                        key: 'style',
+                        showKey: "remarks",
+                        selected: "value",
+                        value: "",
+                        defaultVal: "",
+                        rang: list[1],
+                    }, {
+                        title: "尺寸",
+                        key: 'spec',
+                        showKey: "remarks",
+                        selected: "value",
+                        value: "",
+                        defaultVal: "",
+                        rang: list[2],
+                    }]
+                    this.$refs.Filtrate.changeShow();
+                })
+            } else {
+                this.$refs.Filtrate.changeShow();
+            }
+        },
+        onFiltration(e) {
+            this.where = e;
+            this.$emit("getList", true)
+        }
+    },
+}
+</script>
+
+<style lang="scss" scoped>
+.filtration {
+    display: flex;
+    align-items: center;
+    padding: 10px;
+    box-sizing: border-box;
+    padding-top: 0;
+
+    .scroll-view {
+        flex: 1;
+
+        .tab-box {
+            flex: 1;
+            display: flex;
+        }
+    }
+
+    &-but {
+        height: 20px;
+        font-size: 14px;
+        color: #333333;
+        margin-left: 10px;
+
+        .iconfont {
+            margin-left: 5px;
+            color: #BBBBBB;
+        }
+    }
+}
+
+.tab-item {
+    flex-shrink: 0;
+    height: 24px;
+    line-height: 24px;
+    padding: 0 5px;
+    background: #F2F2F2;
+    border-radius: 12px;
+    margin-right: 5px;
+}
+
+.tab-item-active {
+    background: #C30D23;
+    color: #FFFFFF;
+}
+</style>

+ 104 - 0
pages/index/index/myCase.vue

@@ -0,0 +1,104 @@
+<template>
+    <view>
+        <view class="head-tab">
+            <view class="item" :class="item == tabsActive ? 'active' : ''" v-for="item in tabs" :key="item"
+                @click="tabsChange(item)">{{ item }}</view>
+        </view>
+        <view class="content">
+            <view class="head" />
+            <imgs ref="图库" v-show="tabsActive == '图库'" />
+        </view>
+    </view>
+</template>
+
+<script>
+import imgs from "./casePages/imgs.vue";
+export default {
+    name: "myCase",
+    components: { imgs },
+    data() {
+        return {
+            tabsActive: "图库",
+            tabs: ['图库', '设计美家', '实景案例', '全景720'],
+            list: [],
+            appList: [],
+            "content": {
+                "parentid": 0,
+                "where": {
+                    "isenable": 1
+                }
+            }
+        }
+    },
+    methods: {
+        init(callBack) {
+            if (!this.$refs[this.tabsActive].isInitialize) this.$refs[this.tabsActive].getList(true).then(res => {
+                callBack()
+            })
+        },
+        tabsChange(tabsActive) {
+            this.tabsActive = tabsActive;
+            this.$refs[this.tabsActive].init()
+        }
+    },
+}
+</script>
+
+<style lang="scss">
+.head-tab {
+    display: flex;
+
+    .item {
+        width: 93px;
+        height: 60px;
+        background: linear-gradient(90deg, #202E42 0%, #3D4060 100%);
+        border-radius: 8px 8px 0px 0px;
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        font-size: 14px;
+        color: #FFFFFF;
+        text-align: center;
+        padding-top: 15px;
+        box-sizing: border-box;
+    }
+
+    .active {
+        position: relative;
+        background: #FFFFFF;
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        font-weight: bold;
+        font-size: 14px;
+        color: #333333;
+
+        transition:
+            color .6s,
+            background-color .6s;
+    }
+
+    .active::after {
+        content: "";
+        position: absolute;
+        width: 20px;
+        height: 3px;
+        border-radius: 1.5px;
+        background: #C30D23;
+        left: 50%;
+        top: 38px;
+        margin-left: -10px;
+    }
+}
+
+.content {
+    background: #fff;
+    margin-top: -10px;
+
+    .head {
+        position: relative;
+        border-radius: 8px 8px 0px 0px;
+        width: 100%;
+        height: 11px;
+        z-index: 2;
+        background: #fff;
+    }
+
+}
+</style>

+ 1 - 0
pages/index/modules/bottomSuspensionFrame.vue

@@ -107,6 +107,7 @@ export default {
     border-radius: 50px;
     left: 10px;
     bottom: 20px;
+    z-index: 3;
 
     .swiper-item {
         display: flex;

+ 51 - 3
static/iconfont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 4131149 */
-  src: url('//at.alicdn.com/t/c/font_4131149_hnlabw43go6.woff2?t=1713148879943') format('woff2'),
-       url('//at.alicdn.com/t/c/font_4131149_hnlabw43go6.woff?t=1713148879943') format('woff'),
-       url('//at.alicdn.com/t/c/font_4131149_hnlabw43go6.ttf?t=1713148879943') format('truetype');
+  src: url('//at.alicdn.com/t/c/font_4131149_rjkihcpa1g.woff2?t=1713496091921') format('woff2'),
+       url('//at.alicdn.com/t/c/font_4131149_rjkihcpa1g.woff?t=1713496091921') format('woff'),
+       url('//at.alicdn.com/t/c/font_4131149_rjkihcpa1g.ttf?t=1713496091921') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,54 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-dianhua-hong:before {
+  content: "\e6d4";
+}
+
+.icon-biaoqian:before {
+  content: "\e6d3";
+}
+
+.icon-liulanliang:before {
+  content: "\e6d2";
+}
+
+.icon-pinglun-hui:before {
+  content: "\e6cf";
+}
+
+.icon-shoucang-hui:before {
+  content: "\e6d0";
+}
+
+.icon-dianzan-hui:before {
+  content: "\e6d1";
+}
+
+.icon-a-720quanjing-bai:before {
+  content: "\e6ce";
+}
+
+.icon-a-720quanjing-hong:before {
+  content: "\e6cd";
+}
+
+.icon-weishoucang:before {
+  content: "\e6c9";
+}
+
+.icon-yishoucang:before {
+  content: "\e6ca";
+}
+
+.icon-weidianzan:before {
+  content: "\e6cb";
+}
+
+.icon-yidianzan:before {
+  content: "\e6cc";
+}
+
 .icon-xiazai:before {
   content: "\e6c8";
 }

+ 16 - 0
utils/tool.js

@@ -136,6 +136,22 @@ function mount() {
 
         return `${[year, month, day].map(formatNumber).join(j1)} ${[hour, minute, second].map(formatNumber).join(j2)}`
     }
+
+    Vue.prototype.getCustomClass = (typename) => {
+        return new Promise((resolve, reject) => {
+            Vue.prototype.$Http.basic({
+                "classname": "sysmanage.develop.optiontype.optiontype",
+                "method": "optiontypeselect",
+                "content": {
+                    typename
+                }
+            }).then(res => {
+                console.log("获取自定义分类" + typename, res)
+                if (res.msg != '成功') return resolve([]);
+                resolve(res.data);
+            })
+        })
+    }
 }
 
 module.exports = {