吉福庄APP,基于若依原版开发
zhangmeng
2024-04-29 0cd96281052a84901b6783eaa1f62ca3b14d7c6a
成本计算
4 files added
10 files modified
1806 ■■■■■ changed files
config.js 2 ●●● patch | view | raw | blame | history
pages/calc/food/calc.vue 85 ●●●●● patch | view | raw | blame | history
pages/calc/food/result.vue 143 ●●●●● patch | view | raw | blame | history
uni_modules/uni-collapse/changelog.md 2 ●●●●● patch | view | raw | blame | history
uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue 2 ●●● patch | view | raw | blame | history
uni_modules/uni-collapse/package.json 11 ●●●●● patch | view | raw | blame | history
uni_modules/uni-icons/changelog.md 18 ●●●●● patch | view | raw | blame | history
uni_modules/uni-icons/components/uni-icons/uni-icons.uvue 91 ●●●●● patch | view | raw | blame | history
uni_modules/uni-icons/components/uni-icons/uni-icons.vue 48 ●●●●● patch | view | raw | blame | history
uni_modules/uni-icons/components/uni-icons/uniicons.css 65 ●●●● patch | view | raw | blame | history
uni_modules/uni-icons/components/uni-icons/uniicons.ttf patch | view | raw | blame | history
uni_modules/uni-icons/components/uni-icons/uniicons_file.ts 664 ●●●●● patch | view | raw | blame | history
uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js 649 ●●●●● patch | view | raw | blame | history
uni_modules/uni-icons/package.json 26 ●●●● patch | view | raw | blame | history
config.js
@@ -1,7 +1,7 @@
// 应用全局配置
module.exports = {
  //baseUrl: 'https://vue.ruoyi.vip/prod-api',
  baseUrl: 'http://192.168.31.190:8080',
  baseUrl: 'http://localhost:8080',
  // 应用信息
  appInfo: {
    // 应用名称
pages/calc/food/calc.vue
@@ -1,57 +1,44 @@
<template>
  <view class="container">
    <view class="example">
      <uni-forms ref="form" :model="food" labelWidth="100px">
        <uni-forms-item label="整只鸡腿卷饼" name="zhengZhiTui">
          <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.zhengZhiTui" />
        </uni-forms-item>
        <uni-forms-item label="田园半腿卷饼" name="banZhiTui">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.banZhiTui" />
        </uni-forms-item>
        <uni-forms-item label="厚乳芝士卷饼" name="zhiShi">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.zhiShi" />
        </uni-forms-item>
        <uni-forms-item label="菠萝鸡腿卷饼" name="boLuo">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.boLuo" />
        </uni-forms-item>
        <uni-forms-item label="时蔬轻食卷饼" name="qingShi">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.qingShi" />
        </uni-forms-item>
        <uni-forms-item label="爆辣鸡腿卷饼" name="baoLa">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.baoLa" />
        </uni-forms-item>
        <uni-forms-item label="藤椒鸡腿卷饼" name="tengJiao">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.tengJiao" />
        </uni-forms-item>
      </uni-forms>
      <button type="primary" @click="submit">开始测算</button>
        <uni-collapse ref="collapse" v-model="value" @change="change">
            <uni-collapse-item title="产品数量" >
                <view class="content">
                    <uni-forms ref="form" labelWidth="100px" v-for="food in foods">
                      <uni-forms-item :label="food.name" :name="food.code">
                              <uni-easyinput type="number" placeholder="请输入此产品的数量" v-model="food.qty" />
                      </uni-forms-item>
                    </uni-forms>
                    <button type="primary" @click="submit">开始测算</button>
                </view>
            </uni-collapse-item>
            <uni-collapse-item title="计算结果">
                <view class="content">
                    <text class="text">折叠内容主体,这是一段比较长内容。默认折叠主要内容,只显示当前项标题。点击标题展开,才能看到这段文字。再次点击标题,折叠内容。</text>
                </view>
            </uni-collapse-item>
        </uni-collapse>
    </view>
  </view>
</template>
<script>
  import { getUserProfile } from "@/api/system/user"
  import { updateUserProfile } from "@/api/system/user"
  import { getFoodMaterialCostList } from "@/api/calc/food"
  export default {
    data() {
      return {
        food: {
          zhengZhiTui: 0,
          banZhiTui: 8,
          zhiShi: 0,
          boLuo: 0,
          qingShi: 0,
          baoLa: 0,
          tengJiao: 0
        },
        sexs: [{
          text: '男',
          value: "0"
        }, {
          text: '女',
          value: "1"
        }],
        value:['0'],
        foods: [
            { code:'A0001',name: '整只鸡腿卷饼',qty: 0 },
            { code:'A0002',name: '田园半腿卷饼',qty: 0 },
            { code:'A0003',name: '厚乳芝士卷饼',qty: 0 },
            { code:'A0004',name: '菠萝鸡腿卷饼',qty: 0 },
            { code:'A0005',name: '时蔬轻食卷饼',qty: 0 },
            { code:'A0006',name: '爆辣鸡腿卷饼',qty: 0 },
            { code:'A0007',name: '藤椒鸡腿卷饼',qty: 0 },
        ],
        rules: {
          nickName: {
            rules: [{
@@ -81,23 +68,13 @@
      }
    },
    onLoad() {
      this.getUser()
    },
    onReady() {
      this.$refs.form.setRules(this.rules)
      //this.getUser()
    },
    methods: {
      getUser() {
        getUserProfile().then(response => {
          this.user = response.data
        })
      },
      submit(ref) {
        this.$refs.form.validate().then(res => {
          updateUserProfile(this.user).then(response => {
        getFoodMaterialCostList(this.foods).then(response => {
            this.$modal.msgSuccess("修改成功")
          })
        })
      }
    }
  }
pages/calc/food/result.vue
New file
@@ -0,0 +1,143 @@
<template>
  <view class="container">
    <view class="example">
      <uni-forms ref="form" :model="food" labelWidth="100px">
        <uni-forms-item label="整只鸡腿卷饼1" name="zhengZhiTui">
          <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.zhengZhiTui" />
        </uni-forms-item>
        <uni-forms-item label="田园半腿卷饼" name="banZhiTui">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.banZhiTui" />
        </uni-forms-item>
        <uni-forms-item label="厚乳芝士卷饼" name="zhiShi">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.zhiShi" />
        </uni-forms-item>
        <uni-forms-item label="菠萝鸡腿卷饼" name="boLuo">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.boLuo" />
        </uni-forms-item>
        <uni-forms-item label="时蔬轻食卷饼" name="qingShi">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.qingShi" />
        </uni-forms-item>
        <uni-forms-item label="爆辣鸡腿卷饼" name="baoLa">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.baoLa" />
        </uni-forms-item>
        <uni-forms-item label="藤椒鸡腿卷饼" name="tengJiao">
            <uni-easyinput type="number" placeholder="请输入一个数量" v-model="food.tengJiao" />
        </uni-forms-item>
      </uni-forms>
      <button type="primary" @click="submit">开始测算</button>
    </view>
  </view>
</template>
<script>
  import { getUserProfile } from "@/api/system/user"
  import { updateUserProfile } from "@/api/system/user"
  export default {
    data() {
      return {
        food: {
          zhengZhiTui: 0,
          banZhiTui: 8,
          zhiShi: 0,
          boLuo: 0,
          qingShi: 0,
          baoLa: 0,
          tengJiao: 0
        },
        sexs: [{
          text: '男',
          value: "0"
        }, {
          text: '女',
          value: "1"
        }],
        rules: {
          nickName: {
            rules: [{
              required: true,
              errorMessage: '用户昵称不能为空'
            }]
          },
          phonenumber: {
            rules: [{
              required: true,
              errorMessage: '手机号码不能为空'
            }, {
              pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
              errorMessage: '请输入正确的手机号码'
            }]
          },
          email: {
            rules: [{
              required: true,
              errorMessage: '邮箱地址不能为空'
            }, {
              format: 'email',
              errorMessage: '请输入正确的邮箱地址'
            }]
          }
        }
      }
    },
    onLoad() {
      this.getUser()
    },
    onReady() {
      this.$refs.form.setRules(this.rules)
    },
    methods: {
      getUser() {
        getUserProfile().then(response => {
          this.user = response.data
        })
      },
      submit(ref) {
        this.$refs.form.validate().then(res => {
          updateUserProfile(this.user).then(response => {
            this.$modal.msgSuccess("修改成功")
          })
        })
      }
    }
  }
</script>
<style lang="scss">
  page {
    background-color: #ffffff;
  }
  .example {
    padding: 15px;
    background-color: #fff;
  }
  .segmented-control {
    margin-bottom: 15px;
  }
  .button-group {
    margin-top: 15px;
    display: flex;
    justify-content: space-around;
  }
  .form-item {
    display: flex;
    align-items: center;
    flex: 1;
  }
  .button {
    display: flex;
    align-items: center;
    height: 35px;
    line-height: 35px;
    margin-left: 10px;
  }
  .number-box{
    width:80px;
  }
</style>
uni_modules/uni-collapse/changelog.md
@@ -1,3 +1,5 @@
## 1.4.4(2024-03-20)
- 修复 titleBorder类型修正
## 1.4.3(2022-01-25)
- 修复 初始化的时候 ,open 属性失效的bug
## 1.4.2(2022-01-21)
uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue
@@ -40,7 +40,7 @@
     * @property {String} name 唯一标志符
     * @property {Boolean} open = [true|false] 是否展开组件
     * @property {Boolean} titleBorder = [true|false] 是否显示标题分隔线
     * @property {Boolean} border = [true|false] 是否显示分隔线
     * @property {String} border = ['auto'|'show'|'none'] 是否显示分隔线
     * @property {Boolean} disabled = [true|false] 是否展开面板
     * @property {Boolean} showAnimation = [true|false] 开启动画
     * @property {Boolean} showArrow = [true|false] 是否显示右侧箭头
uni_modules/uni-collapse/package.json
@@ -1,7 +1,7 @@
{
  "id": "uni-collapse",
  "displayName": "uni-collapse 折叠面板",
  "version": "1.4.3",
  "version": "1.4.4",
  "description": "Collapse 组件,可以折叠 / 展开的内容区域。",
  "keywords": [
    "uni-ui",
@@ -16,11 +16,7 @@
  "directories": {
    "example": "../../temps/example_temps"
  },
  "dcloudext": {
    "category": [
      "前端组件",
      "通用组件"
    ],
"dcloudext": {
    "sale": {
      "regular": {
        "price": "0.00"
@@ -37,7 +33,8 @@
      "data": "无",
      "permissions": "无"
    },
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
    "type": "component-vue"
  },
  "uni_modules": {
    "dependencies": [
uni_modules/uni-icons/changelog.md
@@ -1,3 +1,21 @@
## 2.0.9(2024-01-12)
fix: 修复图标大小默认值错误的问题
## 2.0.8(2023-12-14)
- 修复 项目未使用 ts 情况下,打包报错的bug
## 2.0.7(2023-12-14)
- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug
## 2.0.6(2023-12-11)
- 优化 兼容老版本icon类型,如 top ,bottom 等
## 2.0.5(2023-12-11)
- 优化 兼容老版本icon类型,如 top ,bottom 等
## 2.0.4(2023-12-06)
- 优化 uni-app x 下示例项目图标排序
## 2.0.3(2023-12-06)
- 修复 nvue下引入组件报错的bug
## 2.0.2(2023-12-05)
-优化 size 属性支持单位
## 2.0.1(2023-12-05)
- 新增 uni-app x 支持定义图标
## 1.3.5(2022-01-24)
- 优化 size 属性可以传入不带单位的字符串数值
## 1.3.4(2022-01-24)
uni_modules/uni-icons/components/uni-icons/uni-icons.uvue
New file
@@ -0,0 +1,91 @@
<template>
    <text class="uni-icons" :style="styleObj">
        <slot>{{unicode}}</slot>
    </text>
</template>
<script>
    import { fontData, IconsDataItem } from './uniicons_file'
    /**
     * Icons 图标
     * @description 用于展示 icon 图标
     * @tutorial https://ext.dcloud.net.cn/plugin?id=28
     * @property {Number} size 图标大小
     * @property {String} type 图标图案,参考示例
     * @property {String} color 图标颜色
     * @property {String} customPrefix 自定义图标
     * @event {Function} click 点击 Icon 触发事件
     */
    export default {
        name: "uni-icons",
        props: {
            type: {
                type: String,
                default: ''
            },
            color: {
                type: String,
                default: '#333333'
            },
            size: {
                type: Object,
                default: 16
            },
            fontFamily: {
                type: String,
                default: ''
            }
        },
        data() {
            return {};
        },
        computed: {
            unicode() : string {
                let codes = fontData.find((item : IconsDataItem) : boolean => { return item.font_class == this.type })
                if (codes !== null) {
                    return codes.unicode
                }
                return ''
            },
            iconSize() : string {
                const size = this.size
                if (typeof size == 'string') {
                    const reg = /^[0-9]*$/g
                    return reg.test(size as string) ? '' + size + 'px' : '' + size;
                    // return '' + this.size
                }
                return this.getFontSize(size as number)
            },
            styleObj() : UTSJSONObject {
                if (this.fontFamily !== '') {
                    return { color: this.color, fontSize: this.iconSize, fontFamily: this.fontFamily }
                }
                return { color: this.color, fontSize: this.iconSize }
            }
        },
        created() { },
        methods: {
            /**
             * 字体大小
             */
            getFontSize(size : number) : string {
                return size + 'px';
            },
        },
    }
</script>
<style scoped>
    @font-face {
        font-family: UniIconsFontFamily;
        src: url('./uniicons.ttf');
    }
    .uni-icons {
        font-family: UniIconsFontFamily;
        font-size: 18px;
        font-style: normal;
        color: #333;
    }
</style>
uni_modules/uni-icons/components/uni-icons/uni-icons.vue
@@ -1,24 +1,28 @@
<template>
    <!-- #ifdef APP-NVUE -->
    <text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" @click="_onClick">{{unicode}}</text>
    <text :style="styleObj" class="uni-icons" @click="_onClick">{{unicode}}</text>
    <!-- #endif -->
    <!-- #ifndef APP-NVUE -->
    <text :style="{ color: color, 'font-size': iconSize }" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick"></text>
    <text :style="styleObj" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick">
        <slot></slot>
    </text>
    <!-- #endif -->
</template>
<script>
    import icons from './icons.js';
    import { fontData } from './uniicons_file_vue.js';
    const getVal = (val) => {
        const reg = /^[0-9]*$/g
        return (typeof val === 'number' || reg.test(val) )? val + 'px' : val;
    }
        return (typeof val === 'number' || reg.test(val)) ? val + 'px' : val;
    }
    // #ifdef APP-NVUE
    var domModule = weex.requireModule('dom');
    import iconUrl from './uniicons.ttf'
    domModule.addRule('fontFace', {
        'fontFamily': "uniicons",
        'src': "url('"+iconUrl+"')"
        'src': "url('" + iconUrl + "')"
    });
    // #endif
@@ -34,7 +38,7 @@
     */
    export default {
        name: 'UniIcons',
        emits:['click'],
        emits: ['click'],
        props: {
            type: {
                type: String,
@@ -48,26 +52,36 @@
                type: [Number, String],
                default: 16
            },
            customPrefix:{
            customPrefix: {
                type: String,
                default: ''
            },
            fontFamily: {
                type: String,
                default: ''
            }
        },
        data() {
            return {
                icons: icons.glyphs
                icons: fontData
            }
        },
        computed:{
            unicode(){
                let code = this.icons.find(v=>v.font_class === this.type)
                if(code){
                    return unescape(`%u${code.unicode}`)
        computed: {
            unicode() {
                let code = this.icons.find(v => v.font_class === this.type)
                if (code) {
                    return code.unicode
                }
                return ''
            },
            iconSize(){
            iconSize() {
                return getVal(this.size)
            },
            styleObj() {
                if (this.fontFamily !== '') {
                    return `color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`
                }
                return `color: ${this.color}; font-size: ${this.iconSize};`
            }
        },
        methods: {
@@ -81,9 +95,10 @@
<style lang="scss">
    /* #ifndef APP-NVUE */
    @import './uniicons.css';
    @font-face {
        font-family: uniicons;
        src: url('./uniicons.ttf') format('truetype');
        src: url('./uniicons.ttf');
    }
    /* #endif */
@@ -92,5 +107,4 @@
        text-decoration: none;
        text-align: center;
    }
</style>
uni_modules/uni-icons/components/uni-icons/uniicons.css
@@ -1,3 +1,12 @@
.uniui-cart-filled:before {
  content: "\e6d0";
}
.uniui-gift-filled:before {
  content: "\e6c4";
}
.uniui-color:before {
  content: "\e6cf";
}
@@ -58,10 +67,6 @@
  content: "\e6c3";
}
.uniui-gift-filled:before {
  content: "\e6c4";
}
.uniui-fire-filled:before {
  content: "\e6c5";
}
@@ -82,6 +87,18 @@
  content: "\e698";
}
.uniui-arrowthinleft:before {
  content: "\e6d2";
}
.uniui-arrowthinup:before {
  content: "\e6d3";
}
.uniui-arrowthindown:before {
  content: "\e6d4";
}
.uniui-back:before {
  content: "\e6b9";
}
@@ -94,15 +111,7 @@
  content: "\e6bb";
}
.uniui-arrowthinright:before {
  content: "\e6bb";
}
.uniui-arrow-left:before {
  content: "\e6bc";
}
.uniui-arrowthinleft:before {
  content: "\e6bc";
}
@@ -110,39 +119,35 @@
  content: "\e6bd";
}
.uniui-arrowthinup:before {
  content: "\e6bd";
}
.uniui-arrow-down:before {
  content: "\e6be";
}
.uniui-arrowthindown:before {
  content: "\e6be";
.uniui-arrowthinright:before {
  content: "\e6d1";
}
.uniui-down:before {
  content: "\e6b8";
}
.uniui-bottom:before {
  content: "\e6b8";
}
.uniui-arrowdown:before {
  content: "\e6b8";
.uniui-arrowright:before {
  content: "\e6d5";
}
.uniui-right:before {
  content: "\e6b5";
}
.uniui-arrowright:before {
  content: "\e6b5";
}
.uniui-top:before {
.uniui-up:before {
  content: "\e6b6";
}
.uniui-arrowup:before {
.uniui-top:before {
  content: "\e6b6";
}
@@ -150,8 +155,8 @@
  content: "\e6b7";
}
.uniui-arrowleft:before {
  content: "\e6b7";
.uniui-arrowup:before {
  content: "\e6d6";
}
.uniui-eye:before {
@@ -636,10 +641,6 @@
.uniui-bars:before {
  content: "\e627";
}
.uniui-cart-filled:before {
  content: "\e629";
}
.uniui-checkbox:before {
uni_modules/uni-icons/components/uni-icons/uniicons.ttf
Binary files differ
uni_modules/uni-icons/components/uni-icons/uniicons_file.ts
New file
@@ -0,0 +1,664 @@
export type IconsData = {
    id : string
    name : string
    font_family : string
    css_prefix_text : string
    description : string
    glyphs : Array<IconsDataItem>
}
export type IconsDataItem = {
    font_class : string
    unicode : string
}
export const fontData = [
  {
    "font_class": "arrow-down",
    "unicode": "\ue6be"
  },
  {
    "font_class": "arrow-left",
    "unicode": "\ue6bc"
  },
  {
    "font_class": "arrow-right",
    "unicode": "\ue6bb"
  },
  {
    "font_class": "arrow-up",
    "unicode": "\ue6bd"
  },
  {
    "font_class": "auth",
    "unicode": "\ue6ab"
  },
  {
    "font_class": "auth-filled",
    "unicode": "\ue6cc"
  },
  {
    "font_class": "back",
    "unicode": "\ue6b9"
  },
  {
    "font_class": "bars",
    "unicode": "\ue627"
  },
  {
    "font_class": "calendar",
    "unicode": "\ue6a0"
  },
  {
    "font_class": "calendar-filled",
    "unicode": "\ue6c0"
  },
  {
    "font_class": "camera",
    "unicode": "\ue65a"
  },
  {
    "font_class": "camera-filled",
    "unicode": "\ue658"
  },
  {
    "font_class": "cart",
    "unicode": "\ue631"
  },
  {
    "font_class": "cart-filled",
    "unicode": "\ue6d0"
  },
  {
    "font_class": "chat",
    "unicode": "\ue65d"
  },
  {
    "font_class": "chat-filled",
    "unicode": "\ue659"
  },
  {
    "font_class": "chatboxes",
    "unicode": "\ue696"
  },
  {
    "font_class": "chatboxes-filled",
    "unicode": "\ue692"
  },
  {
    "font_class": "chatbubble",
    "unicode": "\ue697"
  },
  {
    "font_class": "chatbubble-filled",
    "unicode": "\ue694"
  },
  {
    "font_class": "checkbox",
    "unicode": "\ue62b"
  },
  {
    "font_class": "checkbox-filled",
    "unicode": "\ue62c"
  },
  {
    "font_class": "checkmarkempty",
    "unicode": "\ue65c"
  },
  {
    "font_class": "circle",
    "unicode": "\ue65b"
  },
  {
    "font_class": "circle-filled",
    "unicode": "\ue65e"
  },
  {
    "font_class": "clear",
    "unicode": "\ue66d"
  },
  {
    "font_class": "close",
    "unicode": "\ue673"
  },
  {
    "font_class": "closeempty",
    "unicode": "\ue66c"
  },
  {
    "font_class": "cloud-download",
    "unicode": "\ue647"
  },
  {
    "font_class": "cloud-download-filled",
    "unicode": "\ue646"
  },
  {
    "font_class": "cloud-upload",
    "unicode": "\ue645"
  },
  {
    "font_class": "cloud-upload-filled",
    "unicode": "\ue648"
  },
  {
    "font_class": "color",
    "unicode": "\ue6cf"
  },
  {
    "font_class": "color-filled",
    "unicode": "\ue6c9"
  },
  {
    "font_class": "compose",
    "unicode": "\ue67f"
  },
  {
    "font_class": "contact",
    "unicode": "\ue693"
  },
  {
    "font_class": "contact-filled",
    "unicode": "\ue695"
  },
  {
    "font_class": "down",
    "unicode": "\ue6b8"
  },
    {
      "font_class": "bottom",
      "unicode": "\ue6b8"
    },
  {
    "font_class": "download",
    "unicode": "\ue68d"
  },
  {
    "font_class": "download-filled",
    "unicode": "\ue681"
  },
  {
    "font_class": "email",
    "unicode": "\ue69e"
  },
  {
    "font_class": "email-filled",
    "unicode": "\ue69a"
  },
  {
    "font_class": "eye",
    "unicode": "\ue651"
  },
  {
    "font_class": "eye-filled",
    "unicode": "\ue66a"
  },
  {
    "font_class": "eye-slash",
    "unicode": "\ue6b3"
  },
  {
    "font_class": "eye-slash-filled",
    "unicode": "\ue6b4"
  },
  {
    "font_class": "fire",
    "unicode": "\ue6a1"
  },
  {
    "font_class": "fire-filled",
    "unicode": "\ue6c5"
  },
  {
    "font_class": "flag",
    "unicode": "\ue65f"
  },
  {
    "font_class": "flag-filled",
    "unicode": "\ue660"
  },
  {
    "font_class": "folder-add",
    "unicode": "\ue6a9"
  },
  {
    "font_class": "folder-add-filled",
    "unicode": "\ue6c8"
  },
  {
    "font_class": "font",
    "unicode": "\ue6a3"
  },
  {
    "font_class": "forward",
    "unicode": "\ue6ba"
  },
  {
    "font_class": "gear",
    "unicode": "\ue664"
  },
  {
    "font_class": "gear-filled",
    "unicode": "\ue661"
  },
  {
    "font_class": "gift",
    "unicode": "\ue6a4"
  },
  {
    "font_class": "gift-filled",
    "unicode": "\ue6c4"
  },
  {
    "font_class": "hand-down",
    "unicode": "\ue63d"
  },
  {
    "font_class": "hand-down-filled",
    "unicode": "\ue63c"
  },
  {
    "font_class": "hand-up",
    "unicode": "\ue63f"
  },
  {
    "font_class": "hand-up-filled",
    "unicode": "\ue63e"
  },
  {
    "font_class": "headphones",
    "unicode": "\ue630"
  },
  {
    "font_class": "heart",
    "unicode": "\ue639"
  },
  {
    "font_class": "heart-filled",
    "unicode": "\ue641"
  },
  {
    "font_class": "help",
    "unicode": "\ue679"
  },
  {
    "font_class": "help-filled",
    "unicode": "\ue674"
  },
  {
    "font_class": "home",
    "unicode": "\ue662"
  },
  {
    "font_class": "home-filled",
    "unicode": "\ue663"
  },
  {
    "font_class": "image",
    "unicode": "\ue670"
  },
  {
    "font_class": "image-filled",
    "unicode": "\ue678"
  },
  {
    "font_class": "images",
    "unicode": "\ue650"
  },
  {
    "font_class": "images-filled",
    "unicode": "\ue64b"
  },
  {
    "font_class": "info",
    "unicode": "\ue669"
  },
  {
    "font_class": "info-filled",
    "unicode": "\ue649"
  },
  {
    "font_class": "left",
    "unicode": "\ue6b7"
  },
  {
    "font_class": "link",
    "unicode": "\ue6a5"
  },
  {
    "font_class": "list",
    "unicode": "\ue644"
  },
  {
    "font_class": "location",
    "unicode": "\ue6ae"
  },
  {
    "font_class": "location-filled",
    "unicode": "\ue6af"
  },
  {
    "font_class": "locked",
    "unicode": "\ue66b"
  },
  {
    "font_class": "locked-filled",
    "unicode": "\ue668"
  },
  {
    "font_class": "loop",
    "unicode": "\ue633"
  },
  {
    "font_class": "mail-open",
    "unicode": "\ue643"
  },
  {
    "font_class": "mail-open-filled",
    "unicode": "\ue63a"
  },
  {
    "font_class": "map",
    "unicode": "\ue667"
  },
  {
    "font_class": "map-filled",
    "unicode": "\ue666"
  },
  {
    "font_class": "map-pin",
    "unicode": "\ue6ad"
  },
  {
    "font_class": "map-pin-ellipse",
    "unicode": "\ue6ac"
  },
  {
    "font_class": "medal",
    "unicode": "\ue6a2"
  },
  {
    "font_class": "medal-filled",
    "unicode": "\ue6c3"
  },
  {
    "font_class": "mic",
    "unicode": "\ue671"
  },
  {
    "font_class": "mic-filled",
    "unicode": "\ue677"
  },
  {
    "font_class": "micoff",
    "unicode": "\ue67e"
  },
  {
    "font_class": "micoff-filled",
    "unicode": "\ue6b0"
  },
  {
    "font_class": "minus",
    "unicode": "\ue66f"
  },
  {
    "font_class": "minus-filled",
    "unicode": "\ue67d"
  },
  {
    "font_class": "more",
    "unicode": "\ue64d"
  },
  {
    "font_class": "more-filled",
    "unicode": "\ue64e"
  },
  {
    "font_class": "navigate",
    "unicode": "\ue66e"
  },
  {
    "font_class": "navigate-filled",
    "unicode": "\ue67a"
  },
  {
    "font_class": "notification",
    "unicode": "\ue6a6"
  },
  {
    "font_class": "notification-filled",
    "unicode": "\ue6c1"
  },
  {
    "font_class": "paperclip",
    "unicode": "\ue652"
  },
  {
    "font_class": "paperplane",
    "unicode": "\ue672"
  },
  {
    "font_class": "paperplane-filled",
    "unicode": "\ue675"
  },
  {
    "font_class": "person",
    "unicode": "\ue699"
  },
  {
    "font_class": "person-filled",
    "unicode": "\ue69d"
  },
  {
    "font_class": "personadd",
    "unicode": "\ue69f"
  },
  {
    "font_class": "personadd-filled",
    "unicode": "\ue698"
  },
  {
    "font_class": "personadd-filled-copy",
    "unicode": "\ue6d1"
  },
  {
    "font_class": "phone",
    "unicode": "\ue69c"
  },
  {
    "font_class": "phone-filled",
    "unicode": "\ue69b"
  },
  {
    "font_class": "plus",
    "unicode": "\ue676"
  },
  {
    "font_class": "plus-filled",
    "unicode": "\ue6c7"
  },
  {
    "font_class": "plusempty",
    "unicode": "\ue67b"
  },
  {
    "font_class": "pulldown",
    "unicode": "\ue632"
  },
  {
    "font_class": "pyq",
    "unicode": "\ue682"
  },
  {
    "font_class": "qq",
    "unicode": "\ue680"
  },
  {
    "font_class": "redo",
    "unicode": "\ue64a"
  },
  {
    "font_class": "redo-filled",
    "unicode": "\ue655"
  },
  {
    "font_class": "refresh",
    "unicode": "\ue657"
  },
  {
    "font_class": "refresh-filled",
    "unicode": "\ue656"
  },
  {
    "font_class": "refreshempty",
    "unicode": "\ue6bf"
  },
  {
    "font_class": "reload",
    "unicode": "\ue6b2"
  },
  {
    "font_class": "right",
    "unicode": "\ue6b5"
  },
  {
    "font_class": "scan",
    "unicode": "\ue62a"
  },
  {
    "font_class": "search",
    "unicode": "\ue654"
  },
  {
    "font_class": "settings",
    "unicode": "\ue653"
  },
  {
    "font_class": "settings-filled",
    "unicode": "\ue6ce"
  },
  {
    "font_class": "shop",
    "unicode": "\ue62f"
  },
  {
    "font_class": "shop-filled",
    "unicode": "\ue6cd"
  },
  {
    "font_class": "smallcircle",
    "unicode": "\ue67c"
  },
  {
    "font_class": "smallcircle-filled",
    "unicode": "\ue665"
  },
  {
    "font_class": "sound",
    "unicode": "\ue684"
  },
  {
    "font_class": "sound-filled",
    "unicode": "\ue686"
  },
  {
    "font_class": "spinner-cycle",
    "unicode": "\ue68a"
  },
  {
    "font_class": "staff",
    "unicode": "\ue6a7"
  },
  {
    "font_class": "staff-filled",
    "unicode": "\ue6cb"
  },
  {
    "font_class": "star",
    "unicode": "\ue688"
  },
  {
    "font_class": "star-filled",
    "unicode": "\ue68f"
  },
  {
    "font_class": "starhalf",
    "unicode": "\ue683"
  },
  {
    "font_class": "trash",
    "unicode": "\ue687"
  },
  {
    "font_class": "trash-filled",
    "unicode": "\ue685"
  },
  {
    "font_class": "tune",
    "unicode": "\ue6aa"
  },
  {
    "font_class": "tune-filled",
    "unicode": "\ue6ca"
  },
  {
    "font_class": "undo",
    "unicode": "\ue64f"
  },
  {
    "font_class": "undo-filled",
    "unicode": "\ue64c"
  },
  {
    "font_class": "up",
    "unicode": "\ue6b6"
  },
    {
      "font_class": "top",
      "unicode": "\ue6b6"
    },
  {
    "font_class": "upload",
    "unicode": "\ue690"
  },
  {
    "font_class": "upload-filled",
    "unicode": "\ue68e"
  },
  {
    "font_class": "videocam",
    "unicode": "\ue68c"
  },
  {
    "font_class": "videocam-filled",
    "unicode": "\ue689"
  },
  {
    "font_class": "vip",
    "unicode": "\ue6a8"
  },
  {
    "font_class": "vip-filled",
    "unicode": "\ue6c6"
  },
  {
    "font_class": "wallet",
    "unicode": "\ue6b1"
  },
  {
    "font_class": "wallet-filled",
    "unicode": "\ue6c2"
  },
  {
    "font_class": "weibo",
    "unicode": "\ue68b"
  },
  {
    "font_class": "weixin",
    "unicode": "\ue691"
  }
] as IconsDataItem[]
// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js
New file
@@ -0,0 +1,649 @@
export const fontData = [
  {
    "font_class": "arrow-down",
    "unicode": "\ue6be"
  },
  {
    "font_class": "arrow-left",
    "unicode": "\ue6bc"
  },
  {
    "font_class": "arrow-right",
    "unicode": "\ue6bb"
  },
  {
    "font_class": "arrow-up",
    "unicode": "\ue6bd"
  },
  {
    "font_class": "auth",
    "unicode": "\ue6ab"
  },
  {
    "font_class": "auth-filled",
    "unicode": "\ue6cc"
  },
  {
    "font_class": "back",
    "unicode": "\ue6b9"
  },
  {
    "font_class": "bars",
    "unicode": "\ue627"
  },
  {
    "font_class": "calendar",
    "unicode": "\ue6a0"
  },
  {
    "font_class": "calendar-filled",
    "unicode": "\ue6c0"
  },
  {
    "font_class": "camera",
    "unicode": "\ue65a"
  },
  {
    "font_class": "camera-filled",
    "unicode": "\ue658"
  },
  {
    "font_class": "cart",
    "unicode": "\ue631"
  },
  {
    "font_class": "cart-filled",
    "unicode": "\ue6d0"
  },
  {
    "font_class": "chat",
    "unicode": "\ue65d"
  },
  {
    "font_class": "chat-filled",
    "unicode": "\ue659"
  },
  {
    "font_class": "chatboxes",
    "unicode": "\ue696"
  },
  {
    "font_class": "chatboxes-filled",
    "unicode": "\ue692"
  },
  {
    "font_class": "chatbubble",
    "unicode": "\ue697"
  },
  {
    "font_class": "chatbubble-filled",
    "unicode": "\ue694"
  },
  {
    "font_class": "checkbox",
    "unicode": "\ue62b"
  },
  {
    "font_class": "checkbox-filled",
    "unicode": "\ue62c"
  },
  {
    "font_class": "checkmarkempty",
    "unicode": "\ue65c"
  },
  {
    "font_class": "circle",
    "unicode": "\ue65b"
  },
  {
    "font_class": "circle-filled",
    "unicode": "\ue65e"
  },
  {
    "font_class": "clear",
    "unicode": "\ue66d"
  },
  {
    "font_class": "close",
    "unicode": "\ue673"
  },
  {
    "font_class": "closeempty",
    "unicode": "\ue66c"
  },
  {
    "font_class": "cloud-download",
    "unicode": "\ue647"
  },
  {
    "font_class": "cloud-download-filled",
    "unicode": "\ue646"
  },
  {
    "font_class": "cloud-upload",
    "unicode": "\ue645"
  },
  {
    "font_class": "cloud-upload-filled",
    "unicode": "\ue648"
  },
  {
    "font_class": "color",
    "unicode": "\ue6cf"
  },
  {
    "font_class": "color-filled",
    "unicode": "\ue6c9"
  },
  {
    "font_class": "compose",
    "unicode": "\ue67f"
  },
  {
    "font_class": "contact",
    "unicode": "\ue693"
  },
  {
    "font_class": "contact-filled",
    "unicode": "\ue695"
  },
  {
    "font_class": "down",
    "unicode": "\ue6b8"
  },
    {
      "font_class": "bottom",
      "unicode": "\ue6b8"
    },
  {
    "font_class": "download",
    "unicode": "\ue68d"
  },
  {
    "font_class": "download-filled",
    "unicode": "\ue681"
  },
  {
    "font_class": "email",
    "unicode": "\ue69e"
  },
  {
    "font_class": "email-filled",
    "unicode": "\ue69a"
  },
  {
    "font_class": "eye",
    "unicode": "\ue651"
  },
  {
    "font_class": "eye-filled",
    "unicode": "\ue66a"
  },
  {
    "font_class": "eye-slash",
    "unicode": "\ue6b3"
  },
  {
    "font_class": "eye-slash-filled",
    "unicode": "\ue6b4"
  },
  {
    "font_class": "fire",
    "unicode": "\ue6a1"
  },
  {
    "font_class": "fire-filled",
    "unicode": "\ue6c5"
  },
  {
    "font_class": "flag",
    "unicode": "\ue65f"
  },
  {
    "font_class": "flag-filled",
    "unicode": "\ue660"
  },
  {
    "font_class": "folder-add",
    "unicode": "\ue6a9"
  },
  {
    "font_class": "folder-add-filled",
    "unicode": "\ue6c8"
  },
  {
    "font_class": "font",
    "unicode": "\ue6a3"
  },
  {
    "font_class": "forward",
    "unicode": "\ue6ba"
  },
  {
    "font_class": "gear",
    "unicode": "\ue664"
  },
  {
    "font_class": "gear-filled",
    "unicode": "\ue661"
  },
  {
    "font_class": "gift",
    "unicode": "\ue6a4"
  },
  {
    "font_class": "gift-filled",
    "unicode": "\ue6c4"
  },
  {
    "font_class": "hand-down",
    "unicode": "\ue63d"
  },
  {
    "font_class": "hand-down-filled",
    "unicode": "\ue63c"
  },
  {
    "font_class": "hand-up",
    "unicode": "\ue63f"
  },
  {
    "font_class": "hand-up-filled",
    "unicode": "\ue63e"
  },
  {
    "font_class": "headphones",
    "unicode": "\ue630"
  },
  {
    "font_class": "heart",
    "unicode": "\ue639"
  },
  {
    "font_class": "heart-filled",
    "unicode": "\ue641"
  },
  {
    "font_class": "help",
    "unicode": "\ue679"
  },
  {
    "font_class": "help-filled",
    "unicode": "\ue674"
  },
  {
    "font_class": "home",
    "unicode": "\ue662"
  },
  {
    "font_class": "home-filled",
    "unicode": "\ue663"
  },
  {
    "font_class": "image",
    "unicode": "\ue670"
  },
  {
    "font_class": "image-filled",
    "unicode": "\ue678"
  },
  {
    "font_class": "images",
    "unicode": "\ue650"
  },
  {
    "font_class": "images-filled",
    "unicode": "\ue64b"
  },
  {
    "font_class": "info",
    "unicode": "\ue669"
  },
  {
    "font_class": "info-filled",
    "unicode": "\ue649"
  },
  {
    "font_class": "left",
    "unicode": "\ue6b7"
  },
  {
    "font_class": "link",
    "unicode": "\ue6a5"
  },
  {
    "font_class": "list",
    "unicode": "\ue644"
  },
  {
    "font_class": "location",
    "unicode": "\ue6ae"
  },
  {
    "font_class": "location-filled",
    "unicode": "\ue6af"
  },
  {
    "font_class": "locked",
    "unicode": "\ue66b"
  },
  {
    "font_class": "locked-filled",
    "unicode": "\ue668"
  },
  {
    "font_class": "loop",
    "unicode": "\ue633"
  },
  {
    "font_class": "mail-open",
    "unicode": "\ue643"
  },
  {
    "font_class": "mail-open-filled",
    "unicode": "\ue63a"
  },
  {
    "font_class": "map",
    "unicode": "\ue667"
  },
  {
    "font_class": "map-filled",
    "unicode": "\ue666"
  },
  {
    "font_class": "map-pin",
    "unicode": "\ue6ad"
  },
  {
    "font_class": "map-pin-ellipse",
    "unicode": "\ue6ac"
  },
  {
    "font_class": "medal",
    "unicode": "\ue6a2"
  },
  {
    "font_class": "medal-filled",
    "unicode": "\ue6c3"
  },
  {
    "font_class": "mic",
    "unicode": "\ue671"
  },
  {
    "font_class": "mic-filled",
    "unicode": "\ue677"
  },
  {
    "font_class": "micoff",
    "unicode": "\ue67e"
  },
  {
    "font_class": "micoff-filled",
    "unicode": "\ue6b0"
  },
  {
    "font_class": "minus",
    "unicode": "\ue66f"
  },
  {
    "font_class": "minus-filled",
    "unicode": "\ue67d"
  },
  {
    "font_class": "more",
    "unicode": "\ue64d"
  },
  {
    "font_class": "more-filled",
    "unicode": "\ue64e"
  },
  {
    "font_class": "navigate",
    "unicode": "\ue66e"
  },
  {
    "font_class": "navigate-filled",
    "unicode": "\ue67a"
  },
  {
    "font_class": "notification",
    "unicode": "\ue6a6"
  },
  {
    "font_class": "notification-filled",
    "unicode": "\ue6c1"
  },
  {
    "font_class": "paperclip",
    "unicode": "\ue652"
  },
  {
    "font_class": "paperplane",
    "unicode": "\ue672"
  },
  {
    "font_class": "paperplane-filled",
    "unicode": "\ue675"
  },
  {
    "font_class": "person",
    "unicode": "\ue699"
  },
  {
    "font_class": "person-filled",
    "unicode": "\ue69d"
  },
  {
    "font_class": "personadd",
    "unicode": "\ue69f"
  },
  {
    "font_class": "personadd-filled",
    "unicode": "\ue698"
  },
  {
    "font_class": "personadd-filled-copy",
    "unicode": "\ue6d1"
  },
  {
    "font_class": "phone",
    "unicode": "\ue69c"
  },
  {
    "font_class": "phone-filled",
    "unicode": "\ue69b"
  },
  {
    "font_class": "plus",
    "unicode": "\ue676"
  },
  {
    "font_class": "plus-filled",
    "unicode": "\ue6c7"
  },
  {
    "font_class": "plusempty",
    "unicode": "\ue67b"
  },
  {
    "font_class": "pulldown",
    "unicode": "\ue632"
  },
  {
    "font_class": "pyq",
    "unicode": "\ue682"
  },
  {
    "font_class": "qq",
    "unicode": "\ue680"
  },
  {
    "font_class": "redo",
    "unicode": "\ue64a"
  },
  {
    "font_class": "redo-filled",
    "unicode": "\ue655"
  },
  {
    "font_class": "refresh",
    "unicode": "\ue657"
  },
  {
    "font_class": "refresh-filled",
    "unicode": "\ue656"
  },
  {
    "font_class": "refreshempty",
    "unicode": "\ue6bf"
  },
  {
    "font_class": "reload",
    "unicode": "\ue6b2"
  },
  {
    "font_class": "right",
    "unicode": "\ue6b5"
  },
  {
    "font_class": "scan",
    "unicode": "\ue62a"
  },
  {
    "font_class": "search",
    "unicode": "\ue654"
  },
  {
    "font_class": "settings",
    "unicode": "\ue653"
  },
  {
    "font_class": "settings-filled",
    "unicode": "\ue6ce"
  },
  {
    "font_class": "shop",
    "unicode": "\ue62f"
  },
  {
    "font_class": "shop-filled",
    "unicode": "\ue6cd"
  },
  {
    "font_class": "smallcircle",
    "unicode": "\ue67c"
  },
  {
    "font_class": "smallcircle-filled",
    "unicode": "\ue665"
  },
  {
    "font_class": "sound",
    "unicode": "\ue684"
  },
  {
    "font_class": "sound-filled",
    "unicode": "\ue686"
  },
  {
    "font_class": "spinner-cycle",
    "unicode": "\ue68a"
  },
  {
    "font_class": "staff",
    "unicode": "\ue6a7"
  },
  {
    "font_class": "staff-filled",
    "unicode": "\ue6cb"
  },
  {
    "font_class": "star",
    "unicode": "\ue688"
  },
  {
    "font_class": "star-filled",
    "unicode": "\ue68f"
  },
  {
    "font_class": "starhalf",
    "unicode": "\ue683"
  },
  {
    "font_class": "trash",
    "unicode": "\ue687"
  },
  {
    "font_class": "trash-filled",
    "unicode": "\ue685"
  },
  {
    "font_class": "tune",
    "unicode": "\ue6aa"
  },
  {
    "font_class": "tune-filled",
    "unicode": "\ue6ca"
  },
  {
    "font_class": "undo",
    "unicode": "\ue64f"
  },
  {
    "font_class": "undo-filled",
    "unicode": "\ue64c"
  },
  {
    "font_class": "up",
    "unicode": "\ue6b6"
  },
    {
      "font_class": "top",
      "unicode": "\ue6b6"
    },
  {
    "font_class": "upload",
    "unicode": "\ue690"
  },
  {
    "font_class": "upload-filled",
    "unicode": "\ue68e"
  },
  {
    "font_class": "videocam",
    "unicode": "\ue68c"
  },
  {
    "font_class": "videocam-filled",
    "unicode": "\ue689"
  },
  {
    "font_class": "vip",
    "unicode": "\ue6a8"
  },
  {
    "font_class": "vip-filled",
    "unicode": "\ue6c6"
  },
  {
    "font_class": "wallet",
    "unicode": "\ue6b1"
  },
  {
    "font_class": "wallet-filled",
    "unicode": "\ue6c2"
  },
  {
    "font_class": "weibo",
    "unicode": "\ue68b"
  },
  {
    "font_class": "weixin",
    "unicode": "\ue691"
  }
]
// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
uni_modules/uni-icons/package.json
@@ -1,7 +1,7 @@
{
  "id": "uni-icons",
  "displayName": "uni-icons 图标",
  "version": "1.3.5",
  "version": "2.0.9",
  "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
  "keywords": [
    "uni-ui",
@@ -16,11 +16,7 @@
  "directories": {
    "example": "../../temps/example_temps"
  },
  "dcloudext": {
    "category": [
      "前端组件",
      "通用组件"
    ],
"dcloudext": {
    "sale": {
      "regular": {
        "price": "0.00"
@@ -37,7 +33,8 @@
      "data": "无",
      "permissions": "无"
    },
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
    "type": "component-vue"
  },
  "uni_modules": {
    "dependencies": ["uni-scss"],
@@ -50,7 +47,8 @@
      "client": {
        "App": {
          "app-vue": "y",
          "app-nvue": "y"
          "app-nvue": "y",
          "app-uvue": "y"
        },
        "H5-mobile": {
          "Safari": "y",
@@ -70,11 +68,15 @@
          "阿里": "y",
          "百度": "y",
          "字节跳动": "y",
          "QQ": "y"
          "QQ": "y",
                    "钉钉": "y",
                    "快手": "y",
                    "飞书": "y",
                    "京东": "y"
        },
        "快应用": {
          "华为": "u",
          "联盟": "u"
          "华为": "y",
          "联盟": "y"
        },
        "Vue": {
            "vue2": "y",
@@ -83,4 +85,4 @@
      }
    }
  }
}
}