lincl il y a 3 ans
Parent
commit
3dc9813f6e

+ 6 - 7
index.js

@ -15,7 +15,7 @@ const install = function(Vue){
    if (!Vue) {
        window.Vue = Vue = _Vue
    }
    components.forEach(component => {
    components.forEach(function(component){
        Vue.component(component.name, component);
    });
}
@ -43,10 +43,9 @@ export default {
    CustomTable,
    CustomForm,
    CustomDialog,
    
    install,
    setDictLoader,
    setUploadUrl,
    setFormatImgUrl,
    setOptions
    install: install,
    setDictLoader: setDictLoader,
    setUploadUrl: setUploadUrl,
    setFormatImgUrl: setFormatImgUrl,
    setOptions: setOptions
} 

+ 17 - 3
src/components/Dialog/index.vue

@ -11,8 +11,8 @@
				</el-scrollbar>
				<div v-if="hasFooter" class="dialog-com-dialog-footer pt10 pr10" >
						<div slot="footer" v-if="!$scopedSlots['footer']">
							<el-button v-if="showCancelButton" @click="$emit('update:visible', false);">{{cancelButtonText}}</el-button>
							<el-button v-if="showConfirmButton" @click="$emit('onSubmit');" type="primary">{{confirmButtonText}}</el-button>
							<el-button v-if="showCancelButton" @click="dialogOnClose">{{cancelButtonText}}</el-button>
							<el-button v-if="showConfirmButton" @click="$emit('onSubmit');" :type="confirmButtonType">{{confirmButtonText}}</el-button>
						</div>
					<div slot="footer" v-else>
						<slot name="footer"></slot>
@ -41,8 +41,14 @@ export default {
		'confirmButtonText': {
			default: '确 定'
		},
		confirmButtonType: {
			default: 'primary'
		},
		'cancelButtonText': {
			default: '取 消'
		},
		beforeClose: {
		},
		loading: {
			default: false
@ -71,7 +77,15 @@ export default {
		
	},
	methods: {
		
		dialogOnClose(){
			if(this.beforeClose){
				this.beforeClose().then(()=>{
					this.$emit('update:visible', false);
				})
			} else {
				this.$emit('update:visible', false);
			}
		}
	}
}
</script>

+ 14 - 2
src/components/Form/Upload.vue

@ -21,8 +21,12 @@
			<i v-else class="el-icon-plus"></i>
		</el-upload>
		<el-dialog :visible.sync="dialogVisible">
			<img width="100%" :src="dialogImageUrl" alt="">
		<el-dialog custom-class="custom-components-upload-dialog" append-to-body :visible.sync="dialogVisible">
			<div class="custom-components-upload-dialog-inner">
				<el-scrollbar>
				<img width="100%" :src="dialogImageUrl" alt="">
				</el-scrollbar>
			</div>
		</el-dialog>
	</div>
</template>
@ -186,4 +190,12 @@ export default {
		}
	}
}
.custom-components-upload-dialog{
	.el-scrollbar__wrap{
		overflow-x: hidden;
	}
	.custom-components-upload-dialog-inner{
		height: 600px;
	}
}
</style>

+ 1 - 0
src/components/Form/form.vue

@ -96,6 +96,7 @@
							</template>
						</template>
					</el-form-item>
					<slot v-if="$scopedSlots[item.id+'_tips']" :name="item.id+'_tips'" :config="item" />
				</el-col>
			</template>
		</el-row>

+ 16 - 0
src/components/Form/index.vue

@ -114,6 +114,22 @@ export default {
		
	},
	methods: {
		resetRule(item){
			this.rules[item.id] = this.setRule(item)
		},
		resetRules(){
			var rules = {}
			this.configs.fields.forEach((v, i) => {
				if(v.groupTitle){
					v.children.forEach((m, n)=>{
						rules[m.id] = this.setRule(m)
					})
				} else {
					rules[v.id] = this.setRule(v)
				}
			});
			this.rules = rules
		},
		setRule(item){
			if(item.rules){
				return item.rules

+ 10 - 1
src/components/TablePage/index.vue

@ -56,7 +56,7 @@
		<div class="box-flex-1" style="position:relative">
			<div style="position:absolute;height:100%;width:100%">
				<el-table v-on="$listeners" v-bind="$attrs" v-loading="loading" border height="100%" style="width: 100%; ">
				<el-table ref="table" v-on="$listeners" v-bind="$attrs" v-loading="loading" border height="100%" style="width: 100%; ">
					<el-table-column
						v-if="configs.selection"
						type="selection"
@ -169,6 +169,15 @@ export default {
		}
	},
	watch: {
		totalCount: {
			handler(n){
				if(n){
					this.$nextTick(v=>{
						this.$refs.table.doLayout()
					})
				}
			},
		},
		searchForm: {
			handler(n){
				this.$emit('getSearchForm', n)

+ 3 - 3
src/components/js/common.js

@ -1,7 +1,7 @@
const pickerOptions = {
    shortcuts: [{
        text: '最近一周',
        onClick(picker) {
        onClick: function (picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
@ -9,7 +9,7 @@ const pickerOptions = {
        }
    }, {
        text: '最近一个月',
        onClick(picker) {
        onClick: function(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
@ -17,7 +17,7 @@ const pickerOptions = {
        }
    }, {
        text: '最近三个月',
        onClick(picker) {
        onClick: function(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);

+ 3 - 7
src/lang/index.js

@ -7,12 +7,8 @@ import zhLocale from "./zh";
Vue.use(VueI18n);
const messages = {
	en: {
		...enLocale,
	},
	zh: {
		...zhLocale,
	}
	en: enLocale,
	zh: zhLocale
};
const i18n = new VueI18n({
@ -20,7 +16,7 @@ const i18n = new VueI18n({
	// options: en or zh
	locale: Cookies.get("language") || "en",
	// set locale messages
	messages
	messages: messages
});
export default i18n;

+ 6 - 92
src/utils/validateForm.js

@ -6,7 +6,7 @@ const $t = function() {
// console.log(i18n.t("valid.required"))
const validateForm = {
  // 手机验证 (element Form规则)
  mobile: (rule, value, callback) => {
  mobile: function(rule, value, callback) {
    if (!value) {
      callback(new Error($t('valid.required', [$t('input.telephone')])))
    }
@ -30,7 +30,7 @@ const validateForm = {
    return str1 + strbu + str2
  },
  // 手机验证 (element Form规则)
  email: (rule, value, callback) => {
  email: function(rule, value, callback) {
    if (!value) {
      callback(new Error($t('valid.required', [$t('input.email')])))
    }
@ -41,93 +41,7 @@ const validateForm = {
    }
    callback()
  },
  // 校验重名 (仕杰风格) (status==-10000表示存在)
  isExist: (api, paramsKey, mes, requireMes) => { // @api:接口  @paramsKey:参数字段 @mes:存在提示信息  @requireMes:未输入提示信息
    return (rule, value, callback) => {
      if (!value) {
        callback(new Error(`请输入${requireMes}`))
        return
      }
      var params = {
        [paramsKey]: value
      }
      api(params).then(res => {
        callback()
      }).catch(err => {
        if (err.status == -10000) {
          callback(new Error(mes))
        } else {
          callback()
        }
      })
    }
  },
  // 校验重名  (桃红风格)(message=available代表可用,message=inavailable代表不可用
  isExist2: (api, paramsKey, mes, requireMes) => { // @api:接口  @paramsKey:参数字段 @mes:存在提示信息  @requireMes:未输入提示信息
    return (rule, value, callback) => {
      if (!value) {
        callback(new Error(`请输入${requireMes}`))
        return
      }
      var params = {
        [paramsKey]: value
      }
      api(params).then(res => {
        if (res.message == 'available') {
          callback()
        } else if (res.message == 'inavailable') {
          callback(new Error(mes))
        }
      }).catch(err => {
        callback()
      })
    }
  },
  // 校验重名  (桃红风格)(message=available代表可用,message=inavailable代表不可用
  isExist3: (api, paramsKey, mes, requireMes, saasId) => { // @api:接口  @paramsKey:参数字段 @mes:存在提示信息  @requireMes:未输入提示信息
    return (rule, value, callback) => {
      if (!value) {
        callback(new Error(`请输入${requireMes}`))
        return
      }
      var params = {
        [paramsKey]: value,
        saasId: saasId
      }
      api(params).then(res => {
        if (res.message == 'available') {
          callback()
        } else if (res.message == 'inavailable') {
          callback(new Error(mes))
        }
      }).catch(err => {
        callback()
      })
    }
  },
  // 校验重名  (逸祥风格)(obj=false代表可用,obj=true代表不可用
  isExist4: (api, paramsKey, mes, requireMes) => { // @api:接口  @paramsKey:参数字段 @mes:存在提示信息  @requireMes:未输入提示信息
    return (rule, value, callback) => {
      if (!value) {
        callback(new Error(`请输入${requireMes}`))
        return
      }
      var params = {
        [paramsKey]: value
      }
      api(params).then(res => {
        if (!res.obj) {
          callback()
        } else if (res.obj) {
          callback(new Error(mes))
        }
      }).catch(err => {
        callback()
      })
    }
  },
  idCard: (rule, value, callback) => {
  idCard: function(rule, value, callback) {
    const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
    if (!value) {
      callback(new Error($t('valid.required', [$t('input.idCard')])))
@ -137,21 +51,21 @@ const validateForm = {
    }
    callback()
  },
  chinese: (rule, value, callback) => {
  chinese: function(rule, value, callback) {
    const reg = /^[\u0391-\uFFE5]+$/
    if (!reg.test(value)) {
      callback(new Error($t('valid.formatError')))
    }
    callback(rule, value, callback)
  },
  numberAndLetter: () => {
  numberAndLetter: function() {
    const reg = /^[0-9a-zA-Z]*$/
    if (!reg.test(value)) {
      callback(new Error($t('valid.formatError')))
    }
    callback()
  },
  digit: (rule, value, callback) => {
  digit: function(rule, value, callback) {
    let reg = /^[0-9]*$/
    if (!reg.test(value)) {
      callback(new Error("请输入整型数字"));