当前位置: 首页 > wzjs >正文

免费建视频网站新浪微舆情大数据平台

免费建视频网站,新浪微舆情大数据平台,网站制作知识,中信建设有限责任公司待遇怎么样目录 一. 需求描述 二. 解决思路 三. 代码实现 四. 效果展示 一. 需求描述 如下图所示,新增人员页面,有字段"Leader DS"和"Leader DS名称"。 现在我要在字段"Leader DS"和"Leader DS名称"字段下方再添加一…

目录

一. 需求描述

二. 解决思路

三. 代码实现

四. 效果展示


一. 需求描述

如下图所示,新增人员页面,有字段"Leader DS"和"Leader DS名称"。

现在我要在字段"Leader DS"和"Leader DS名称"字段下方再添加一个新的字段叫"TL OR生效日",并根据以下情况来判断是否必填。

情况一:若"Leader DS"和"Leader DS名称"字段值均不为空,则新增字段"TL OR生效日"设置为必填,并默认填充当前日期;

情况二:若"Leader DS"和"Leader DS名称"字段值为空,则新增字段"TL OR生效日"设置为非必填,并不再默认填充日期值;

二. 解决思路

既然我们使用了Vue + Element UI的框架,相对来讲就比较容易了;

首先第一步:编写"TL OR生效日"字段的 Vue 代码;

注解使用Element UI的组件库,组建的使用方法如下所示

// el-form 表单标签(表单容器)
// ref="xxx": 注册表单引用,用于通过 this.$refs.xxx 访问表单方法(如验证提交)
// :model="xxx": 绑定表单数据对象(Vue 的 xxx 数据)
// :rules="xxx": 绑定表单验证规则对象(这里绑定的规则通常是恒定不改变的,必填就是必填,非必填就是非必填)
<el-form ref="xxx" :model="xxx" :rules="xxx" label-width="200px">// 行标签(行容器)// 作用:创建一行布局容器(基于 24 分栏的栅格系统),通常放在表单标签内部,一张表单会有很多行数据,每一对 el-row 标签就是一行   <el-row>    <!--列标签(列容器),有行就会有列,列标签必须写在行标签的内部!!!--><!--:span="xxx"标识当前列占用的行宽度比例,上面说到了一行分为24等比例--><!--所以如果希望一行有四列,则:span="6";如果希望三列,则:span="8",平分24即可,也可不平分,一列 :span="16",另一列 :span="8"--><el-col :span="xxx"><!--表单项容器,item 内部就是我们来定义各种组件的地方,例如input组件,button组件等--><!--:label="xxx" 就是当前列的标签名称--><!--prop="xxx" 指定验证规则对应的字段名(需与 personnelRules 中的键匹配)--><!--通常表单:rules="xxx"定义的是一个对象,对象内部就是一个个具体的字段校验规则--><!--假设:rules="AAA",内部定义了aaa,bbb,ccc三个字段校验,则当前prop="AAA.ccc"--><el-form-item :label="xxx" prop="xxx"><!--v-model绑定值,如果表单z上为:model="person",内部有多个属性如name,age...--><!--则当前输入框是什么值,就绑定对应的值--><el-input v-model="person.xxx" /></el-form-item></el-col></el-row>
</el-form>

其次第二步:编写字段必填校验规则;

必填校验的方法常用的有以下两种

第一种:也是上面提到的,写在统一的父表单校验规则对象中,然后使用对象.属性校验的方式将校验规则绑定到对应的字段;如下代码所示

return {formRules:{userName: { required: true, message: this.$t('common.required') }, // 用户名email: [{ required: true, message: this.$t('common.required') }, { validator: validateEmail }], // 邮箱tlOrEffectDate: { required: true, message: this.$t('common.required') }, // TL OR生效......}
}

第二种: 在 Vue 的 data 或 computed 中定义规则,这种通常使用函数,函数返回值为必填属性了如下代码所示

computed: {tlOrEffectDateRule() {// 代码逻辑,各种计算,得出字段必填属性return ......}
}

最后第三步:将字段必填校验规则绑定在 Vue 代码字段上;

这一步是最简单的,完成第一步或第二步,只需要将定义好的属性或函数绑定到对应的字段即可;如下代码所示

// 第一种方案绑定字段属性
<el-form-item :label="TL OR生效日" :rules="formRules.tlOrEffectDate" prop="tlOrEffectDate"><el-date-pickerv-model="personnel.tlOrEffectDate" />
</el-form-item>// 第二种方案绑定字段属性
<el-form-item :label="TL OR生效日" :rules="tlOrEffectDateRule" prop="tlOrEffectDate"><el-date-pickerv-model="personnel.tlOrEffectDate" />
</el-form-item>

三. 代码实现

<!-- LeaderDS-->
<el-row><el-col v-if="this.personnel.personTypeId === 'DS'" :span="12"><el-form-item  :label="$t('personnel.newstaff.tlManager')" prop="tlManager"><code-searchv-model="personnel.tlManager"show-code:show-name="false"code-type="Person":other-conditions="{leaderDS: '1',personTypeId:'DS'}"@change="refFillManager('', ...arguments)"/></el-form-item></el-col><el-col v-if="this.personnel.personTypeId === 'DS'" :span="12"><el-form-item :label="$t('personnel.newstaff.tlManagerName')" prop="tlManager"><code-searchref="tlManagerName"v-model="personnel.tlManager"code-type="Person":other-conditions="{leaderDS: '1',personTypeId: 'DS'}"@change="refFillManager('', ...arguments)"/></el-form-item></el-col>
</el-row>
// 编写要新增的字段 TL OR生效日 值
<!-- TL OR生效日 -->
<el-row><el-col :span="12" v-if="this.personnel.personTypeId === 'DS'"><el-form-item :label="$t('personnel.newstaff.tlOrEffectDate')" :rules="tlOrEffectDateRules" prop="tlOrEffectDate"><el-date-pickerv-model="personnel.tlOrEffectDate"value-format="yyyy-MM-dd"type="date":placeholder="$t('personnel.newstaff.optiondate')" /></el-form-item></el-col>
</el-row>// 初始化定义一个存储表单所有元素值的对象
const newstaffperson = {// 这里定义页面上的所有字段值,为了美观简洁,只展示上面代码中相关的字段值,其余字段省略....tlManager: '', //  TL经理tlOrEffectDate: null, // TL OR生效日
}
// 在 vue 的 return 方法中,调用调用深拷贝方法,创建另外一个独立的新的数据备份,防止响应式数据被意外修改
return {personnel: _.cloneDeep(newstaffperson),
}// 在 Vue 的 data 或 computed 中定义规则,因为我们要新增的字段,必填不是固定的,而是随着其其他字段动态控制是否必填
computed: {// 定义 tlOrEffectDateRules 函数,采用动态函数计算属性的方法为其设置必填属性,将函数绑定到添加的字段"TL OR生效日"的属性:rules上tlOrEffectDateRules() {const isRequired = this.personnel.tlManager !== null && this.personnel.tlManager.trim() !== '';return isRequired? { required: true, message: this.$t('common.required') } // tlManager 值不为空,必填,显示星号: {}; // tlManager 值为空,非必填,返回空数组.表示:无校验规则 => 不显示星号}
},

四. 效果展示

 OK,编写完毕代码,我们进入页面

情况一测试:如下图,我选择任意一个Leader DS,然后可以看到我添加的新字段"TL OR生效日"已经出现了星号必填;

现在我手动删除日期,可以看到已经报出必填校验了

 

情况二测试:如下图,我将刚才选择的"Leader DS"赋值为空值,可以看到,新添加的字段"TL OR生效日"必填星号样式也没有出现,也没有提示我们该字段必填,这就实现了根据"Leader DS"是否为空动态控制"TL OR生效日"字段是否必填。

http://www.dtcms.com/wzjs/501025.html

相关文章:

  • 怎么做网站引流百度的网页地址
  • 本地网站建设软件百度浏览器下载安装2023版本
  • 搜索优化整站优化交换友链
  • 专业网站建设搭建推广app用什么平台比较好
  • 潍坊网站建设制作做一个自己的网站
  • 深圳高端网站设计公司最新的销售平台
  • 对外贸营销型网站建设的几点建议河南品牌网络推广外包
  • 为代理赌博做网站常州网站建设
  • 网站开发项目进度表长春百度推广电话
  • 简约创意logo图片大全南昌seo全网营销
  • 怎么做多语言网站全国广告投放平台
  • 南县做网站推荐博客seo怎么做
  • 网站建设合同书-详细版关于进一步优化
  • 网站开发通用流程图百度官方首页
  • 唐山做网站优化宁波靠谱营销型网站建设
  • 如何做图让网站的图更清晰网站规划与设计
  • 做网站建设的联系电话百度收录怎么做
  • 网站的构成国外推广网站
  • 江门h5模板建站网络营销课程实训报告
  • 百度网站的域名是什么今天新闻
  • 青岛网站建设推广百度app登录
  • 莆田seo谷歌seo服务公司
  • 3g下订单的网站怎么做专业营销策划团队
  • 北京十大网站建设公司如何自己创建一个网站
  • 做网站客户端发帖推广
  • 白银网站建设公司国家认可的教育培训机构
  • 网站建设公司专业网站开发制作网店运营是做什么的
  • 营销型网站建设的特别之处都有哪些今天最新新闻事件报道
  • 外贸展示网站多少钱免费查权重工具
  • 为什么要立刻做网站售卖链接