Browse Source

Merge branch 'upstream_v4' into V4_input

lkjh3214 3 years ago
parent
commit
5b4d8a58e7

+ 2 - 2
jd/generate-nutui.cjs

@@ -35,7 +35,7 @@ let fileStrBuild = `${importStr}
 ${installFunction}
 ${installFunction}
 const version = '${packageConfig.version}';
 const version = '${packageConfig.version}';
 export { install, version, Locale, ${packages.join(',')}, ${methods.join(',')}};
 export { install, version, Locale, ${packages.join(',')}, ${methods.join(',')}};
-export default { install, version, Locale};`;
+export default { install, version};`;
 
 
 fs.outputFile(path.resolve(__dirname, '../src/packages/nutui.vue.build.ts'), fileStrBuild, 'utf8', (error) => {
 fs.outputFile(path.resolve(__dirname, '../src/packages/nutui.vue.build.ts'), fileStrBuild, 'utf8', (error) => {
   // logger.success(`${package_config_path} 文件写入成功`);
   // logger.success(`${package_config_path} 文件写入成功`);
@@ -46,7 +46,7 @@ ${installFunction}
 ${importScssStr}
 ${importScssStr}
 export const testComponents = { ${packages.join(',')}};
 export const testComponents = { ${packages.join(',')}};
 export { install, Locale, ${packages.join(',')}, ${methods.join(',')}  };
 export { install, Locale, ${packages.join(',')}, ${methods.join(',')}  };
-export default { install, version:'${packageConfig.version}', Locale};`;
+export default { install, version:'${packageConfig.version}'};`;
 fs.outputFile(path.resolve(__dirname, '../src/packages/nutui.vue.ts'), fileStrDev, 'utf8', (error) => {
 fs.outputFile(path.resolve(__dirname, '../src/packages/nutui.vue.ts'), fileStrDev, 'utf8', (error) => {
   // logger.success(`${package_config_path} 文件写入成功`);
   // logger.success(`${package_config_path} 文件写入成功`);
 });
 });

+ 5 - 12
jd/generate-unplugin-deps.cjs

@@ -48,8 +48,8 @@ export { ${element.name} };`;
   });
   });
 });
 });
 outputFileEntry += components.map(name => `import { ${name} } from "./packages/${name.toLowerCase()}/index.mjs";`).join('\n');
 outputFileEntry += components.map(name => `import { ${name} } from "./packages/${name.toLowerCase()}/index.mjs";`).join('\n');
-outputFileEntry += `\nimport { Locale } from "./packages/locale/lang";
-function install(app) {
+outputFileEntry += `\nexport { Locale } from "./packages/locale/lang";
+export function install(app) {
   const packages = [${components.join(',')}];
   const packages = [${components.join(',')}];
   packages.forEach((item) => {
   packages.forEach((item) => {
       if (item.install) {
       if (item.install) {
@@ -59,17 +59,10 @@ function install(app) {
       }
       }
   });
   });
 }
 }
-const version = '${packageConfig.version}';
-var stdin_default = {
+export const version = '${packageConfig.version}';
+export default {
   install,
   install,
-  version,
-  Locale
-};
-export {
-  stdin_default as default,
-  install,
-  version,
-  Locale
+  version
 };`;
 };`;
 
 
 tasks.push(
 tasks.push(

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "@nutui/nutui",
   "name": "@nutui/nutui",
-  "version": "4.0.1-beta.1",
+  "version": "4.0.1-beta.2",
   "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)",
   "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)",
   "main": "dist/nutui.umd.js",
   "main": "dist/nutui.umd.js",
   "module": "dist/nutui.es.js",
   "module": "dist/nutui.es.js",

+ 4 - 5
publish/nutui-taro/package.json

@@ -1,16 +1,15 @@
 {
 {
   "name": "@nutui/nutui-taro",
   "name": "@nutui/nutui-taro",
-  "version": "4.0.1-beta.1",
+  "version": "4.0.1-beta.2",
   "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)",
   "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)",
   "main": "dist/nutui.umd.js",
   "main": "dist/nutui.umd.js",
   "module": "dist/nutui.es.js",
   "module": "dist/nutui.es.js",
   "style": "dist/style.css",
   "style": "dist/style.css",
   "typings": "dist/types/index.d.ts",
   "typings": "dist/types/index.d.ts",
   "sideEffects": [
   "sideEffects": [
-    "dist/packages/**/*",
-    "dist/packages/locale/lang/*",
-    "dist/styles/**",
-    "dist/style.css"
+    "dist/packages/**/style.mjs",
+    "*.scss",
+    "*.css"
   ],
   ],
   "web-types": "dist/smartips/web-types.json",
   "web-types": "dist/smartips/web-types.json",
   "keywords": [
   "keywords": [

+ 3 - 4
publish/nutui/package.json

@@ -1,16 +1,15 @@
 {
 {
   "name": "@nutui/nutui",
   "name": "@nutui/nutui",
-  "version": "4.0.1-beta.1",
+  "version": "4.0.1-beta.2",
   "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)",
   "description": "京东风格的轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)",
   "main": "dist/nutui.umd.js",
   "main": "dist/nutui.umd.js",
   "module": "dist/nutui.es.js",
   "module": "dist/nutui.es.js",
   "style": "dist/style.css",
   "style": "dist/style.css",
   "typings": "dist/types/index.d.ts",
   "typings": "dist/types/index.d.ts",
   "sideEffects": [
   "sideEffects": [
-    "dist/packages/_es/*",
     "dist/packages/**/style.mjs",
     "dist/packages/**/style.mjs",
-    "dist/styles/**",
-    "dist/style.css"
+    "*.scss",
+    "*.css"
   ],
   ],
   "web-types": "dist/smartips/web-types.json",
   "web-types": "dist/smartips/web-types.json",
   "keywords": [
   "keywords": [

+ 6 - 0
src/config.json

@@ -27,6 +27,12 @@
         "show": true
         "show": true
       },
       },
       {
       {
+        "name": "version",
+        "cName": "4.0 更新介绍",
+        "eName": "Version",
+        "show": true
+      },
+      {
         "name": "migrate-from-v3",
         "name": "migrate-from-v3",
         "cName": "从 v3 升级到 v4",
         "cName": "从 v3 升级到 v4",
         "eName": "Migrate-from-v3",
         "eName": "Migrate-from-v3",

+ 3 - 0
src/packages/__VUE/badge/demo.vue

@@ -11,6 +11,9 @@
       <nut-badge value="NEW">
       <nut-badge value="NEW">
         <nut-avatar shape="square"></nut-avatar>
         <nut-avatar shape="square"></nut-avatar>
       </nut-badge>
       </nut-badge>
+      <nut-badge value="NEW" bubble>
+        <nut-avatar shape="square"></nut-avatar>
+      </nut-badge>
       <nut-badge dot>
       <nut-badge dot>
         <nut-avatar shape="square"></nut-avatar>
         <nut-avatar shape="square"></nut-avatar>
       </nut-badge>
       </nut-badge>

+ 1 - 0
src/packages/__VUE/badge/doc.en-US.md

@@ -218,6 +218,7 @@ import { Check, Link, Download } from '@nutui/icons-vue';
 | max     | When value is a numeric value, the maximum value                     | number  | `10000`   |
 | max     | When value is a numeric value, the maximum value                     | number  | `10000`   |
 | z-index | badge z-index                          | number  | `10`      |
 | z-index | badge z-index                          | number  | `10`      |
 | dot     | whether to dot                                 | boolean | `false`   |
 | dot     | whether to dot                                 | boolean | `false`   |
+| bubble(`>v4.0.0`)  | whether to bubble                               | Boolean | `false`   |
 | hidden  | whether to hide                                   | boolean | `false`   |
 | hidden  | whether to hide                                   | boolean | `false`   |
 | top     | Up and down offset, support unit setting, for example: 5px | number  | `0`       |
 | top     | Up and down offset, support unit setting, for example: 5px | number  | `0`       |
 | right   | Left and right offset, support unit setting, for example: 5px | number  | `0`       |
 | right   | Left and right offset, support unit setting, for example: 5px | number  | `0`       |

+ 1 - 0
src/packages/__VUE/badge/doc.md

@@ -218,6 +218,7 @@ import { Check, Link, Download } from '@nutui/icons-vue';
 | max     | `value` 为数值时,最大值                     | number  | `10000`   |
 | max     | `value` 为数值时,最大值                     | number  | `10000`   |
 | z-index | 徽标的 `z-index` 值                          | number  | `10`      |
 | z-index | 徽标的 `z-index` 值                          | number  | `10`      |
 | dot     | 是否为小点                                 | boolean | `false`   |
 | dot     | 是否为小点                                 | boolean | `false`   |
+| bubble(`>v4.0.0`)  | 是否为气泡形状                                 | Boolean | `false`   |
 | hidden  | 是否隐藏                                   | boolean | `false`   |
 | hidden  | 是否隐藏                                   | boolean | `false`   |
 | top     | 上下偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |
 | top     | 上下偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |
 | right   | 左右偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |
 | right   | 左右偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |

+ 1 - 0
src/packages/__VUE/badge/doc.taro.md

@@ -218,6 +218,7 @@ import { Check, Link, Download } from '@nutui/icons-vue-taro';
 | max     | `value` 为数值时,最大值                     | number  | `10000`   |
 | max     | `value` 为数值时,最大值                     | number  | `10000`   |
 | z-index | 徽标的 `z-index` 值                          | number  | `10`      |
 | z-index | 徽标的 `z-index` 值                          | number  | `10`      |
 | dot     | 是否为小点                                 | boolean | `false`   |
 | dot     | 是否为小点                                 | boolean | `false`   |
+| bubble(`>v4.0.0`)  | 是否为气泡形状                                 | Boolean | `false`   |
 | hidden  | 是否隐藏                                   | boolean | `false`   |
 | hidden  | 是否隐藏                                   | boolean | `false`   |
 | top     | 上下偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |
 | top     | 上下偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |
 | right   | 左右偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |
 | right   | 左右偏移量,支持单位设置,可设置为:`5px` 等 | number  | `0`       |

+ 3 - 0
src/packages/__VUE/badge/index.scss

@@ -41,5 +41,8 @@
       border-radius: $badge-dot-border-radius;
       border-radius: $badge-dot-border-radius;
       padding: $badge-dot-padding;
       padding: $badge-dot-padding;
     }
     }
+    &--bubble {
+      border-bottom-left-radius: 0;
+    }
   }
   }
 }
 }

+ 5 - 1
src/packages/__VUE/badge/index.taro.vue

@@ -8,7 +8,7 @@
       v-show="!hidden && (content || dot)"
       v-show="!hidden && (content || dot)"
       v-text="content"
       v-text="content"
       class="nut-badge__content nut-badge__content--sup"
       class="nut-badge__content nut-badge__content--sup"
-      :class="{ 'nut-badge__content--dot': dot }"
+      :class="{ 'nut-badge__content--dot': dot, 'nut-badge__content--bubble': !dot && bubble }"
       :style="stl"
       :style="stl"
     >
     >
     </view>
     </view>
@@ -32,6 +32,10 @@ export default create({
       type: Boolean,
       type: Boolean,
       default: false
       default: false
     },
     },
+    bubble: {
+      type: Boolean,
+      default: false
+    },
     hidden: {
     hidden: {
       type: Boolean,
       type: Boolean,
       default: false
       default: false

+ 5 - 1
src/packages/__VUE/badge/index.vue

@@ -8,7 +8,7 @@
       v-show="!hidden && (content || dot)"
       v-show="!hidden && (content || dot)"
       v-text="content"
       v-text="content"
       class="nut-badge__content nut-badge__content--sup"
       class="nut-badge__content nut-badge__content--sup"
-      :class="{ 'nut-badge__content--dot': dot }"
+      :class="{ 'nut-badge__content--dot': dot, 'nut-badge__content--bubble': !dot && bubble }"
       :style="stl"
       :style="stl"
     >
     >
     </view>
     </view>
@@ -32,6 +32,10 @@ export default create({
       type: Boolean,
       type: Boolean,
       default: false
       default: false
     },
     },
+    bubble: {
+      type: Boolean,
+      default: false
+    },
     hidden: {
     hidden: {
       type: Boolean,
       type: Boolean,
       default: false
       default: false

+ 2 - 2
src/packages/__VUE/input/index.taro.vue

@@ -252,7 +252,7 @@ export default create({
       let value = input.value;
       let value = input.value;
       active.value = true;
       active.value = true;
       emit('focus', event);
       emit('focus', event);
-      emit('update:modelValue', value);
+      // emit('update:modelValue', value);
     };
     };
 
 
     const onBlur = (event: Event) => {
     const onBlur = (event: Event) => {
@@ -270,7 +270,7 @@ export default create({
       }
       }
       updateValue(getModelValue(), 'onBlur');
       updateValue(getModelValue(), 'onBlur');
       emit('blur', event);
       emit('blur', event);
-      emit('update:modelValue', value);
+      // emit('update:modelValue', value);
     };
     };
 
 
     const clear = (event: Event) => {
     const clear = (event: Event) => {

+ 2 - 2
src/packages/__VUE/input/index.vue

@@ -233,7 +233,7 @@ export default create({
       let value = input.value;
       let value = input.value;
       active.value = true;
       active.value = true;
       emit('focus', event);
       emit('focus', event);
-      emit('update:modelValue', value);
+      // emit('update:modelValue', value);
     };
     };
 
 
     const onBlur = (event: Event) => {
     const onBlur = (event: Event) => {
@@ -251,7 +251,7 @@ export default create({
       }
       }
       updateValue(getModelValue(), 'onBlur');
       updateValue(getModelValue(), 'onBlur');
       emit('blur', event);
       emit('blur', event);
-      emit('update:modelValue', value);
+      // emit('update:modelValue', value);
     };
     };
 
 
     const clear = (event: Event) => {
     const clear = (event: Event) => {

+ 1 - 1
src/packages/__VUE/notify/index.taro.vue

@@ -15,7 +15,7 @@
 <script lang="ts">
 <script lang="ts">
 import { ref, watch, onUnmounted } from 'vue';
 import { ref, watch, onUnmounted } from 'vue';
 import { createComponent } from '../../utils/create';
 import { createComponent } from '../../utils/create';
-import Popup from '../popup/index.vue';
+import Popup from '../popup/index.taro.vue';
 const { create } = createComponent('notify');
 const { create } = createComponent('notify');
 
 
 export default create({
 export default create({

+ 7 - 2
src/packages/__VUE/uploader/index.scss

@@ -117,6 +117,10 @@
       position: relative;
       position: relative;
       width: $uploader-picture-width;
       width: $uploader-picture-width;
       height: $uploader-picture-height;
       height: $uploader-picture-height;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      border-radius: 6px;
       .close {
       .close {
         position: absolute;
         position: absolute;
         right: 0;
         right: 0;
@@ -141,8 +145,9 @@
         @include oneline-ellipsis();
         @include oneline-ellipsis();
       }
       }
       &__c {
       &__c {
-        height: 100%;
-        width: 100%;
+        max-width: 100%;
+        max-height: 100%;
+        border-radius: 6px;
       }
       }
       &__file {
       &__file {
         height: 100%;
         height: 100%;

+ 7 - 1
src/packages/__VUE/uploader/index.taro.vue

@@ -23,6 +23,7 @@
 
 
         <img
         <img
           class="nut-uploader__preview-img__c"
           class="nut-uploader__preview-img__c"
+          mode="aspectFit"
           @click="fileItemClick(item)"
           @click="fileItemClick(item)"
           v-if="item.type?.includes('image') && item.url"
           v-if="item.type?.includes('image') && item.url"
           :src="item.url"
           :src="item.url"
@@ -38,7 +39,12 @@
         <view class="nut-uploader__preview-img__file__name" @click="fileItemClick(item)" :class="[item.status]">
         <view class="nut-uploader__preview-img__file__name" @click="fileItemClick(item)" :class="[item.status]">
           <Link class="nut-uploader__preview-img__file__link" />
           <Link class="nut-uploader__preview-img__file__link" />
           <view class="file__name_tips">{{ item.name }}</view>
           <view class="file__name_tips">{{ item.name }}</view>
-          <Del color="#808080" class="nut-uploader__preview-img__file__del" @click="onDelete(item, index)"></Del>
+          <Del
+            v-if="isDeletable"
+            color="#808080"
+            class="nut-uploader__preview-img__file__del"
+            @click="onDelete(item, index)"
+          ></Del>
         </view>
         </view>
 
 
         <nut-progress
         <nut-progress

+ 6 - 1
src/packages/__VUE/uploader/index.vue

@@ -38,7 +38,12 @@
         <view @click="fileItemClick(item)" class="nut-uploader__preview-img__file__name" :class="[item.status]">
         <view @click="fileItemClick(item)" class="nut-uploader__preview-img__file__name" :class="[item.status]">
           <Link class="nut-uploader__preview-img__file__link" />
           <Link class="nut-uploader__preview-img__file__link" />
           <view class="file__name_tips">{{ item.name }}</view>
           <view class="file__name_tips">{{ item.name }}</view>
-          <Del color="#808080" class="nut-uploader__preview-img__file__del" @click="onDelete(item, index)"></Del>
+          <Del
+            v-if="isDeletable"
+            color="#808080"
+            class="nut-uploader__preview-img__file__del"
+            @click="onDelete(item, index)"
+          ></Del>
         </view>
         </view>
 
 
         <nut-progress
         <nut-progress

+ 3 - 0
src/sites/mobile-taro/vue/src/exhibition/pages/badge/index.vue

@@ -12,6 +12,9 @@
       <nut-badge value="NEW">
       <nut-badge value="NEW">
         <nut-avatar shape="square"></nut-avatar>
         <nut-avatar shape="square"></nut-avatar>
       </nut-badge>
       </nut-badge>
+      <nut-badge value="NEW" bubble>
+        <nut-avatar shape="square"></nut-avatar>
+      </nut-badge>
       <nut-badge dot>
       <nut-badge dot>
         <nut-avatar shape="square"></nut-avatar>
         <nut-avatar shape="square"></nut-avatar>
       </nut-badge>
       </nut-badge>