Skip to content

Commit

Permalink
feat: - 开放源码
Browse files Browse the repository at this point in the history
  • Loading branch information
唐道勇 authored and 唐道勇 committed Jan 5, 2022
1 parent 02d6d01 commit 16e62e2
Show file tree
Hide file tree
Showing 13 changed files with 2,149 additions and 450 deletions.
61 changes: 61 additions & 0 deletions @types/components/dwDragVerify/src/DwDragVerify.vue.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { Ref } from 'vue';
declare const _sfc_main: import("vue").DefineComponent<{
/**
* placeholder提示文字
*/
placeholder: {
type: StringConstructor;
default: string;
};
/**
* 验证通过提示文字
*/
confirmText: {
type: StringConstructor;
default: string;
};
}, {
props: Readonly<{
onDragSuccess: (() => any) | undefined;
placeholder: string;
confirmText: string;
}>;
emit: (event: "dragSuccess") => void;
dragDivRef: Ref<HTMLElement | null>;
dragMoveRef: Ref<HTMLElement | null>;
beginClientLeft: Ref<number>;
mouseMoveStatus: Ref<boolean>;
maxwidth: Ref<number>;
confirmWords: Ref<string>;
confirmSuccess: Ref<boolean>;
dragBgStyle: {
width: string;
};
dragStyle: {
left: string;
};
dragTextStyle: {
color: string;
};
dragMousedown: (e: MouseEvent) => void;
dragMousemove: (e: MouseEvent) => void;
dragMoseUp: (e: MouseEvent) => void;
dragSuccess: () => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
/**
* 验证通过回调
*/
dragSuccess: () => true;
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
placeholder?: unknown;
confirmText?: unknown;
} & {
placeholder: string;
confirmText: string;
} & {}> & {
onDragSuccess?: (() => any) | undefined;
}, {
placeholder: string;
confirmText: string;
}>;
export default _sfc_main;
134 changes: 134 additions & 0 deletions @types/components/dwWechatLogin/src/DwWechatLogin.vue.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
declare const _sfc_main: import("vue").DefineComponent<{
/**
* 非必传,默认值为false
* true:手机点击确认登录后可以在 iframe 内跳转到 redirect_uri
* false:手机点击确认登录后可以在 top window 跳转到 redirect_uri。
*/
self_redirect: {
type: BooleanConstructor;
default: boolean;
};
/**
* 必传
* 应用唯一标识,在微信开放平台提交应用审核通过后获得
*/
appid: {
type: StringConstructor;
};
/**
* 必传
* 应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可
*/
scope: {
type: StringConstructor;
};
/**
* 必传
* 重定向地址,需要进行UrlEncode
*/
redirect_uri: {
type: StringConstructor;
};
/**
* 非必传,建议传
* 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
*/
state: {
type: StringConstructor;
};
/**
* 非必传
* 提供"black"、"white"可选,默认为黑色文字描述。详见文档底部FAQ
*/
style: {
type: StringConstructor;
};
/**
* 非必传
* 自定义样式链接,第三方可根据实际需求覆盖默认样式。详见文档底部FAQ
*/
href: {
type: StringConstructor;
};
styletype: {
type: StringConstructor;
};
sizetype: {
type: StringConstructor;
};
bgcolor: {
type: StringConstructor;
};
rst: {
type: StringConstructor;
};
/**
* 非必传
* iframe的宽度,默认300px
*/
iframeWidth: {
type: NumberConstructor;
default: number;
};
/**
* 非必传
* iframe的高度,默认300px
*/
iframeHeight: {
type: NumberConstructor;
default: number;
};
}, {
prop: Readonly<{
[x: string & `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined;
self_redirect: boolean;
appid: string | undefined;
scope: string | undefined;
redirect_uri: string | undefined;
state: string | undefined;
style: string | undefined;
href: string | undefined;
styletype: string | undefined;
sizetype: string | undefined;
bgcolor: string | undefined;
rst: string | undefined;
iframeWidth: number;
iframeHeight: number;
}>;
hidden: import("vue").ComputedRef<boolean>;
loginSrc: import("vue").ComputedRef<string>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
self_redirect?: unknown;
appid?: unknown;
scope?: unknown;
redirect_uri?: unknown;
state?: unknown;
style?: unknown;
href?: unknown;
styletype?: unknown;
sizetype?: unknown;
bgcolor?: unknown;
rst?: unknown;
iframeWidth?: unknown;
iframeHeight?: unknown;
} & {
self_redirect: boolean;
iframeWidth: number;
iframeHeight: number;
} & {
appid?: string | undefined;
scope?: string | undefined;
redirect_uri?: string | undefined;
state?: string | undefined;
style?: string | undefined;
href?: string | undefined;
styletype?: string | undefined;
sizetype?: string | undefined;
bgcolor?: string | undefined;
rst?: string | undefined;
}>, {
self_redirect: boolean;
iframeWidth: number;
iframeHeight: number;
}>;
export default _sfc_main;
6 changes: 6 additions & 0 deletions @types/components/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { App } from 'vue';
import DwWechatLogin from './dwWechatLogin/src/DwWechatLogin.vue';
import DwDragVerify from './dwDragVerify/src/DwDragVerify.vue';
declare const install: (app: App) => void;
export { DwWechatLogin, DwDragVerify };
export default install;
8 changes: 8 additions & 0 deletions RollupBuild/rollup.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/*
* @Author: matiastang
* @Date: 2022-01-05 17:28:59
* @LastEditors: matiastang
* @LastEditTime: 2022-01-05 17:28:59
* @FilePath: /dw-vue-components/RollupBuild/rollup.config.js
* @Description:
*/
75 changes: 75 additions & 0 deletions components/dwDragVerify/src/dwDragVerify.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
// @use '../../../src/common/css/index.scss' as *;
@import '../../../src/common/css/index.scss';
.drag-verify {
position: relative;
background-color: #f8f8f8;
width: 100%;
height: 52px;
line-height: 52px;
text-align: center;
border: 1px solid $borderColor;
box-sizing: border-box;
.handler {
width: 50px;
height: 50px;
cursor: move;
position: absolute;
top: 0px;
left: 0px;
}
.handler_bg {
background: #fff
url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTEyNTVEMURGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTEyNTVEMUNGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MTc5NzNmZS02OTQxLTQyOTYtYTIwNi02NDI2YTNkOWU5YmUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==')
no-repeat center;
}
.handler_ok_bg {
background: #fff
url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDlBRDI3NjVGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDlBRDI3NjRGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWEzMWNhMC1hYmViLTQxNWEtYTEwZS04Y2U5NzRlN2Q4YTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==')
no-repeat center;
}
.drag_bg {
background-color: #7ac23c;
height: 50px;
width: 0px;
}
.drag_text {
position: absolute;
color: #8c8c8c;
top: 0px;
width: 100%;
text-align: center;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
-o-user-select: none;
-ms-user-select: none;
font-size: fontSize(16px);
@include defaultFont;
}

.slidetounlock {
background: -webkit-gradient(
linear,
left top,
right top,
color-stop(0, #4d4d4d),
color-stop(0.4, #4d4d4d),
color-stop(0.5, #fff),
color-stop(0.6, #4d4d4d),
color-stop(1, #4d4d4d)
);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: slidetounlock 3s infinite;
-webkit-animation: slidetounlock 3s infinite;
-webkit-text-size-adjust: none;
}
@keyframes slidetounlock {
0% {
background-position: -200px 0;
}
100% {
background-position: 200px 0;
}
}
}
10 changes: 10 additions & 0 deletions components/dwWechatLogin/src/dwWechatLogin.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.dw-wechat-login-container {
width: 300px;
height: 400px;
display: flex;
justify-content: center;
align-items: center;
.dw-wechat-login-qrcode {
border: none;
}
}
5 changes: 3 additions & 2 deletions gulpfile.ts/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
* @Author: matiastang
* @Date: 2021-12-24 14:50:33
* @LastEditors: matiastang
* @LastEditTime: 2021-12-29 17:15:40
* @FilePath: /datumwealth-front-scaffold/gulpfile.ts/index.ts
* @LastEditTime: 2022-01-05 15:58:02
* @FilePath: /dw-vue-components/gulpfile.ts/index.ts
* @Description: gulpfile.js
*/
// 导出所有 tasks
export * from './tasks/npm'
export * from './tasks/scripts'
export * from './tasks/version'
export * from './tasks/git'
export * from './tasks/vueTheme'
78 changes: 78 additions & 0 deletions gulpfile.ts/tasks/vueTheme.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/*
* @Author: matiastang
* @Date: 2022-01-05 15:57:32
* @LastEditors: matiastang
* @LastEditTime: 2022-01-05 17:24:35
* @FilePath: /dw-vue-components/gulpfile.ts/tasks/vueTheme.ts
* @Description: vue提取样式
*/
import gulp, { src, dest, series, parallel } from 'gulp'
import dartSass from 'sass'
import gulpSass from 'gulp-sass'
const sass = gulpSass(dartSass)
import autoprefixer from 'gulp-autoprefixer'
// import cssmin from 'gulp-cssmin'
import del from 'del'
import minimist from 'minimist'

// 打包配置
const config = {
input: '../../components/dwWechatLogin/src/',
output: '../../dist/theme-default',
}
// 复制字体
const copy_font = () => {
gulp.src([`${config.input}fonts/*`, `!${config.input}fonts/*.css`]).pipe(
dest(`${config.output}/fonts`)
)
}
// 压缩font 里的 CSS
// exports.minifontCss = () =>
// src(`${config.input}fonts/*.css`)
// .pipe(cssmin())
// .pipe(dest(`${config.output}/fonts`))
// 删除之前css打包文件
const vue_theme_clear = (cb: () => void) => {
del(['./dist/css'])
cb()
}

// 编译 SCSS
// const compile = () =>
// src([`${input}*.less`, ...['base', 'variable'].map((name) => `!${input}${name}.less`)])
// .pipe(less())
// .pipe(
// autoprefixer({
// overrideBrowserslist: ['last 2 versions'],
// })
// )
// .pipe(cssmin())
// .pipe(dest(output))
// exports.build = series(clean, parallel(compile, copyfont, minifontCss))

const vue_build_theme = (cb: () => void) => {
const argv = minimist(process.argv.slice(2))
const inPath = argv.in || './components'
if (!inPath) {
console.error(`vue_build_theme指令需要添加输入路径in`)
cb()
return
}
const outPath = argv.out || './dist/css'
if (!outPath) {
console.error(`vue_build_theme指令需要添加输出路径out`)
cb()
return
}
gulp.src(['./src/common/css/theme.scss', `${inPath}/**/*.scss`])
// .pipe(sass.sync({ outputStyle: 'compressed' }).on('error', sass.logError))
.pipe(sass.sync().on('error', sass.logError))
.pipe(autoprefixer())
// .pipe(cssmin())
.pipe(gulp.dest(outPath))
cb()
}

const vue_clear_build = gulp.series(vue_theme_clear, vue_build_theme)

export { vue_theme_clear, vue_build_theme, vue_clear_build }
Loading

0 comments on commit 16e62e2

Please sign in to comment.