feat:弹窗自定义、输入过滤的临时方案示例;

master
zhoulei 3 years ago
parent 2a3d62282e
commit e06fba9800

@ -1,28 +1,38 @@
<!--
* @Author: zhou lei
* @Date: 2021-12-14 09:59:02
* @LastEditTime: 2022-01-20 11:53:51
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/App.vue
* 联系方式:910592680@qq.com 18669792120 科海达信息技术有限公司
-->
<script lang="ts"> <script lang="ts">
import Vue from "vue"; import Vue from 'vue';
import MyMixin from './utils/mixin';
// #ifdef APP-PLUS // #ifdef APP-PLUS
import checkAppUpdate from "@/plugins/app-update"; import checkAppUpdate from '@/plugins/app-update';
// #endif // #endif
export default Vue.extend({ export default Vue.extend({
mpType: "app", mpType: 'app',
onLaunch() { onLaunch() {
console.log("App Launch"); console.log('App Launch');
// #ifdef APP-PLUS // #ifdef APP-PLUS
checkAppUpdate(); checkAppUpdate();
// #endif // #endif
}, },
onShow() { onShow() {
console.log("App Show"); console.log('App Show');
}, },
onHide() { onHide() {
console.log("App Hide"); console.log('App Hide');
}, },
}); });
</script> </script>
<style lang="scss"> <style lang="scss">
/* 注意要写在第一行同时给style标签加入lang="scss"属性 */ /* 注意要写在第一行同时给style标签加入lang="scss"属性 */
@import "~uview-ui/index.scss"; @import '~uview-ui/index.scss';
/*每个页面公共css */ /*每个页面公共css */
page { page {
height: 100%; height: 100%;

@ -1,7 +1,17 @@
import { Component, Vue } from "vue-property-decorator"; /*
import { page } from "@/utils/page"; * @Author: zhou lei
import { session } from "@/store/modules/session"; * @Date: 2021-11-08 17:12:53
import { image } from "@/utils/image"; * @LastEditTime: 2022-01-20 11:57:05
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/components/base/page.ts
* :910592680@qq.com 18669792120
*/
import { Component, Vue } from 'vue-property-decorator';
import { page } from '@/utils/page';
import { session } from '@/store/modules/session';
import { image } from '@/utils/image';
@Component @Component
export class BasePage extends Vue { export class BasePage extends Vue {
/** /**

@ -11,6 +11,7 @@
<u-image width="288rpx" height="85rpx" :src="image.global.logo1"></u-image> <u-image width="288rpx" height="85rpx" :src="image.global.logo1"></u-image>
<span>V1.6</span> <span>V1.6</span>
</view> </view>
<u-form class="form" :model="form" ref="form" :border-bottom="false" :error-type="['toast']"> <u-form class="form" :model="form" ref="form" :border-bottom="false" :error-type="['toast']">
<u-form-item <u-form-item
class="form-item" class="form-item"
@ -24,7 +25,7 @@
}" }"
><u-input ><u-input
v-model="form.username" v-model="form.username"
:placeholder="this.$t('message.PleaseInputUserName')" :placeholder="$t('message.PleaseInputUserName')"
placeholder-style="color: rgba(255, 255, 255, 0.36)" placeholder-style="color: rgba(255, 255, 255, 0.36)"
:custom-style="{ :custom-style="{
height: '88rpx', height: '88rpx',
@ -44,7 +45,7 @@
}" }"
><u-input ><u-input
v-model="form.password" v-model="form.password"
:placeholder="this.$t('message.PleaseInputPassword')" :placeholder="$t('message.PleaseInputPassword')"
type="password" type="password"
placeholder-style="color: rgba(255, 255, 255, 0.36)" placeholder-style="color: rgba(255, 255, 255, 0.36)"
:custom-style="{ :custom-style="{
@ -77,7 +78,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { Component, Ref } from 'vue-property-decorator'; import { Component, Ref, Watch } from 'vue-property-decorator';
import { server } from '@/pages/login/server/model'; import { server } from '@/pages/login/server/model';
import Alerts from '@/components/alert/alerts.vue'; import Alerts from '@/components/alert/alerts.vue';
import { page } from '@/utils/page'; import { page } from '@/utils/page';
@ -85,11 +86,13 @@ import { session } from '@/store/modules/session';
import { BasePage } from '@/components/base/page'; import { BasePage } from '@/components/base/page';
import { VForm } from 'vue/types/form'; import { VForm } from 'vue/types/form';
import { Lang } from '@/i18n'; import { Lang } from '@/i18n';
import { url } from '@/utils/url'; // mixin
import MyMixins from '@/utils/mixin';
// import { any } from 'lodash/fp'; // import { any } from 'lodash/fp';
@Component({ @Component({
components: { Alerts }, components: { Alerts },
mixins: [MyMixins],
}) })
export default class LoginPage extends BasePage { export default class LoginPage extends BasePage {
/** /**
@ -107,6 +110,14 @@ export default class LoginPage extends BasePage {
return server.serverAddress; return server.serverAddress;
} }
//
username = '';
@Watch('username')
typeNum() {
this.$nextTick(() => {
this.username = this.username.replace(/^(\d+)\.(\d\d).*$/, '$1.$2');
});
}
form = { form = {
username: '', username: '',
password: '', password: '',

@ -0,0 +1,27 @@
/*
* @Author: zhou lei
* @Date: 2022-01-20 11:26:20
* @LastEditTime: 2022-01-20 17:48:10
* @LastEditors: zhou lei
* @Description:
* @FilePath: /wms_haiwai_app/src/utils/mixin.ts
* :910592680@qq.com 18669792120
*/
import Vue from 'vue';
import { Component } from 'vue-property-decorator';
@Component // 一定要用Component修饰
export default class MyMixins extends Vue {
customToast(msg: string, type = 'toast', title = '') {
if (type === 'toast') {
uni.showToast({
title: msg,
});
} else {
uni.showModal({
title: title,
content: msg,
});
}
}
}
Loading…
Cancel
Save