提交 78344870 编写于 作者: ibizdev's avatar ibizdev

tony001 发布系统代码 [后台服务,演示应用]

上级 acc51616
...@@ -6,16 +6,19 @@ ...@@ -6,16 +6,19 @@
border: 1px solid #dcdee2; border: 1px solid #dcdee2;
margin-left: 10px; margin-left: 10px;
color: #606266; color: #606266;
background-color: #fff;
&:hover { &:hover {
border: 1px solid #dcdee2; border: 1px solid #dcdee2;
} }
&.is-disabled {
background-color: #f5f5f5;
color: #00000040;
}
} }
} }
.code{ .code{
padding-top: 8px; padding-top: 8px;
} }
.error { .ivu-alert-error {
color: red; background-color: rgb(255, 225, 225);
} }
} }
\ No newline at end of file
<template> <template>
<div class="app-login-note-verify"> <div :class="[model.sysCss, 'app-login-note-verify']" :style="containerStyle">
<div class="content"> <div class="content">
<i-input <i-input
size="default" size="default"
type="text" type="text"
v-model="phoneNumber" v-model="phoneNumber"
:placeholder="$t('components.login.phoneplaceholder')" :placeholder="$t('components.login.phoneplaceholder')"
@on-blur="veriPhoneNumber" @on-blur="veriPhoneNumber"
></i-input> ></i-input>
<el-button <el-button :disabled="disabled" size="mini" @click="getVeriCode()">{{
:disabled="disabled" disabled ? `${delay}s ${$t("components.login.getcodeafter")}` : `${$t("components.login.getcode")}`
size="mini" }}</el-button>
type="primary" </div>
@click="getVeriCode()" <alert v-show="phoneError" type="error">电话号码格式错误</alert>
>{{ disabled ? `${countDown}s ${$t('components.login.getcodeafter')}` : `${$t('components.login.getcode')}` }}</el-button <div class="code" v-show="this.show">
> <i-input
size="default"
type="text"
:value="currentValue"
@input="codeChange"
:placeholder="$t('components.login.codeplaceholder')"
></i-input>
</div>
</div> </div>
<div class="code">
<i-input
size="default"
type="text"
:value="currentValue"
@input="codeChange"
:placeholder="$t('components.login.codeplaceholder')"
></i-input>
</div>
</div>
</template> </template>
<script lang='ts'> <script lang="ts">
import { PanelFieldModel } from "@/model/panel-detail";
import { Vue, Component, Prop } from "vue-property-decorator"; import { Vue, Component, Prop } from "vue-property-decorator";
@Component({}) @Component({})
export default class AppPresetSmsVerification extends Vue { export default class AppLoginNoteVerify extends Vue {
/**
/** * 模型
*验证码值 *
* * @type {string}
* @type {string} * @memberof AppLoginInput
* @memberof AppPresetSmsVerification */
*/ @Prop() public model!: PanelFieldModel;
@Prop() public value!: string;
/**
/** * 值
*验证码当前值 *
* * @type {string}
* @type {string} * @memberof AppLoginInput
* @memberof AppPresetSmsVerification */
*/ @Prop() public value!: string;
get currentValue(): string {
return this.value; /**
} * 名称
*
* @type {string}
/** * @memberof AppLoginInput
* 手机号 */
* @Prop() public name!: string;
* @type {*}
* @memberof AppPresetSmsVerification /**
*/ *验证码当前值
public phoneNumber: string = ''; *
* @type {string}
/** * @memberof AppLoginNoteVerify
* 倒计时 */
* get currentValue(): string {
* @type {*} return this.value;
* @memberof AppPresetSmsVerification
*/
public countDown: number = 60;
/**
* 错误提示
* @type {*}
* @memberof AppPresetSmsVerification
*/
public phoneError = false;
/**
* 是否禁用获取验证码按钮
*
* @type {*}
* @memberof AppPresetSmsVerification
*/
public disabled: boolean = false;
/**
* 定时器
*
* @type {*}
* @memberof AppPresetSmsVerification
*/
public timer: any;
/**
* @description 设置倒计时
* @memberof AppPresetSmsVerification
*/
public setCountDown() {
if (this.countDown > 0) {
this.countDown--;
} else {
this.countDown = 60;
this.disabled = false;
clearInterval(this.timer);
} }
this.$forceUpdate();
} /**
* 手机号
/** *
* @description 验证码输入变化 * @type {*}
* @memberof AppPresetSmsVerification * @memberof AppLoginNoteVerify
*/ */
public codeChange(value: string) { public phoneNumber: string = "";
this.$emit("change", value);
} /**
* 错误提示
/** * @type {*}
* @description 校验手机号 * @memberof AppLoginNoteVerify
* @memberof AppPresetSmsVerification */
*/ public phoneError = false;
public veriPhoneNumber(): boolean {
this.phoneError = !/^1[3-9]\d{9}$/.test(this.phoneNumber); /**
if(this.phoneError) { * 是否禁用获取验证码按钮
this.$emit("error", this.$t('components.login.phonefailed')); *
} else { * @type {boolean}
this.$emit("error", ''); * @memberof AppLoginNoteVerify
*/
public disabled: boolean = false;
/**
* 显示验证码输入框
*
* @type {boolean}
* @memberof AppLoginNoteVerify
*/
public show: boolean = false;
/**
* 延迟
*
* @type {number}
* @memberof AppLoginNoteVerify
*/
public delay: number = 60;
/**
* 定时器
*
* @type {any}
* @memberof AppLoginNoteVerify
*/
public timer: any = null;
/**
* @description 验证码输入变化
* @memberof AppLoginNoteVerify
*/
public codeChange(value: string) {
this.$emit("valueChange", { name: this.name, value: value });
}
/**
* @description 校验手机号
* @memberof AppLoginNoteVerify
*/
public veriPhoneNumber(): boolean {
this.phoneError = !/^1[3-9]\d{9}$/.test(this.phoneNumber);
return this.phoneError;
}
/**
* @description 设置延迟时间
* @memberof AppLoginNoteVerify
*/
public setDelay() {
this.timer = setInterval(() => {
if (this.delay > 0) {
this.delay--;
} else {
this.delay = 60;
this.disabled = false;
clearInterval(this.timer);
}
}, 1000)
}
/**
* @description 获取验证码
* @memberof AppLoginNoteVerify
*/
public getVeriCode() {
if (this.phoneError) return;
// todo 获取验证码
this.show = true;
this.disabled = true;
this.setDelay();
} }
return this.phoneError;
}
/**
* @description 获取验证码
* @memberof AppPresetSmsVerification
*/
public getVeriCode() {
if(this.phoneError) return;
// todo 获取验证码
}
} }
</script> </script>
<style lang='less'> <style lang="less">
@import "./app-login-note-verify.less"; @import "./app-login-note-verify.less";
</style> </style>
\ No newline at end of file
...@@ -96,9 +96,9 @@ ...@@ -96,9 +96,9 @@
</template> </template>
<template #static_carousel1> <template #static_carousel1>
<span>轮播图参数: <span>轮播图参数:
参数:SA.SRFDA.PS.Core.Res.PSSysImageImpl@3f134cf5 参数:SA.SRFDA.PS.Core.Res.PSSysImageImpl@36931f1
参数:SA.SRFDA.PS.Core.Res.PSSysImageImpl@c21892d 参数:SA.SRFDA.PS.Core.Res.PSSysImageImpl@6f4dc6f6
参数:SA.SRFDA.PS.Core.Res.PSSysImageImpl@6db4ef93 参数:SA.SRFDA.PS.Core.Res.PSSysImageImpl@5b417990
</span> </span>
<app-rawitem-carousel <app-rawitem-carousel
type="STATIC_CAROUSEL" type="STATIC_CAROUSEL"
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<app-login-captcha name="auth_captcha1" :model="layoutModelDetails.auth_captcha1" :value="layoutData.auth_captcha1" @valueChange="handleValueChange" /> <app-login-captcha name="auth_captcha1" :model="layoutModelDetails.auth_captcha1" :value="layoutData.auth_captcha1" @valueChange="handleValueChange" />
</template> </template>
<template #auth_verificationcode> <template #auth_verificationcode>
<app-login-note-verify /> <app-login-note-verify name="auth_verificationcode" :model="layoutModelDetails.auth_verificationcode" :value="layoutData.auth_verificationcode" @valueChange="handleValueChange" />
</template> </template>
<template #auth_loginmsg> <template #auth_loginmsg>
<app-login-message name="auth_loginmsg" :model="layoutModelDetails.auth_loginmsg" :value="layoutData.auth_loginmsg" /> <app-login-message name="auth_loginmsg" :model="layoutModelDetails.auth_loginmsg" :value="layoutData.auth_loginmsg" />
......
...@@ -621,7 +621,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface ...@@ -621,7 +621,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/ */
public load(opt: any = {}): void { public load(opt: any = {}): void {
if(!this.loadAction){ if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loadAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -657,7 +657,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface ...@@ -657,7 +657,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/ */
public loadDraft(opt: any = {},mode?:string): void { public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){ if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
......
...@@ -1545,7 +1545,7 @@ export default class SFormBase extends Vue implements ControlInterface { ...@@ -1545,7 +1545,7 @@ export default class SFormBase extends Vue implements ControlInterface {
*/ */
public load(opt: any = {}): void { public load(opt: any = {}): void {
if(!this.loadAction){ if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderTestCLEditView2' + (this.$t('app.formpage.notconfig.loadaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSEditView3' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -1580,7 +1580,7 @@ export default class SFormBase extends Vue implements ControlInterface { ...@@ -1580,7 +1580,7 @@ export default class SFormBase extends Vue implements ControlInterface {
*/ */
public loadDraft(opt: any = {}): void { public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){ if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderTestCLEditView2' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSEditView3' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
...@@ -1642,7 +1642,7 @@ export default class SFormBase extends Vue implements ControlInterface { ...@@ -1642,7 +1642,7 @@ export default class SFormBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderTestCLEditView2' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSEditView3' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg,{viewparams:this.viewparams}); Object.assign(arg,{viewparams:this.viewparams});
...@@ -1750,7 +1750,7 @@ export default class SFormBase extends Vue implements ControlInterface { ...@@ -1750,7 +1750,7 @@ export default class SFormBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderTestCLEditView2' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSEditView3' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg,{viewparams:this.viewparams}); Object.assign(arg,{viewparams:this.viewparams});
...@@ -1827,7 +1827,7 @@ export default class SFormBase extends Vue implements ControlInterface { ...@@ -1827,7 +1827,7 @@ export default class SFormBase extends Vue implements ControlInterface {
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> { public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => { return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){ if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderTestCLEditView2' + (this.$t('app.formpage.notconfig.removeaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSEditView3' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return; return;
} }
const arg: any = opt[0]; const arg: any = opt[0];
......
...@@ -172,7 +172,7 @@ ...@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 --> <!--输出实体[IBIZBOOK]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-18-7"> <changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-28-7">
<createTable tableName="T_IBIZBOOK"> <createTable tableName="T_IBIZBOOK">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)"> <column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column> </column>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册