<template><!--绑定了一个 控制是否为全屏fullscreen close-on-click-modal  是否通过点击model进行关闭 visible是否显示弹出框 close关闭按钮 --><el-dialog :title="fullTitle" width="80%" :fullscreen="false" :close-on-click-modal="false" :visible.sync="dialogFormVisible"@close="close"><!--关闭按钮 调用混用里面得close方法--><!--通过绑定显示对应数值 model为表单数据对象 label-width表单数据大小 form绑定得表单信息--><el-form ref="form" :rules="rules" :model="form" size="medium" :label-width="formLabelWidth" v-loading="loading"><!--定义订单信息--><!--订单信息部分--><!--shddow 设置阴影设置时机--><el-card header="订单信息" shadow="hover"><el-col :span="12"><el-form-item prop="order.name" label="订单名称" ><el-input   v-model="form.order.name" :disabled="viewMode"/></el-form-item></el-col><el-col  :span="12"><el-form-item prop="order.client" label="客户名称"><el-input v-model="form.order.client" :disabled="viewMode"/></el-form-item></el-col><el-col :span="12"><el-form-item  prop="order.order_number" label="订单编号"><el-input v-model="form.order.order_number" :disabled="viewMode"/></el-form-item></el-col><el-col :span="12"><el-form-item  prop="order.column" label="业务单元" :label-width="formLabelWidth"><!--注意用户的返回值--><el-select  v-model="form.order.business_module"  placeholder="请选择所属单元"><el-option @change="UploadUrl"  v-for="business_module in business_modules" :label="business_module" :value="business_module"></el-option></el-select></el-form-item><!--        <el-form-item label="业务单元"><el-input v-model="form.order.business_module" :disabled="viewMode"/></el-form-item>--></el-col><!--el-col来修饰布局--><el-col :span="12"><el-form-item prop="order.money" label="订单金额"><el-input-number v-model="form.order.money" :disabled="viewMode"/></el-form-item></el-col></el-card><!--任务信息部分--><el-card shadow="hover" header="任务信息" style="margin-top: 20px"><account-filter-select :viewMode="viewMode" @select="onSelectAccount" /><div class="department-container" v-if="form.departmentList.length > 0" v-for="(dep,index) in form.departmentList"><el-row class="department-info"><el-avatar src="../../assets/logo.png" class="department-avatar" /><span class="department-name">{{ dep.name }}</span></el-row><!--任务金额--><el-form-item label="任务金额"><el-input-number v-model="dep.money" :disabled="viewMode"></el-input-number></el-form-item><template v-for="(acc,item) in dep.accounts"><el-divider /><el-row class="media-container"><span class="media-info">{{ acc.name }}</span><el-button type="primary" @click="addFrom(index,item)" :disabled="viewMode">+</el-button></el-row><el-form-item label="刊例价" >{{ acc.price }}</el-form-item><template v-for="(task, index) in acc.tasks"><el-form-item :label="index + 1 + '. 任务名称'"><el-input v-model="task.name" :disabled="viewMode"/></el-form-item><el-form-item :label="index + 1 + '.发布时间'"><el-date-picker v-model="task.start_time" :disabled="viewMode"/></el-form-item></template></template></div></el-card></el-form><div slot="footer" class="dialog-footer"><template v-if="approveMode"><el-button @click="reject('order',{status:-1,remark:''})">审核退回</el-button><!--审核完成变成待接收--><el-button type="primary" @click="approve('order',{status:2,remark:''})">审核通过</el-button></template><template v-if="viewMode"><el-button @click="close">关 闭</el-button></template><template v-else><el-button @click="cancel">取 消</el-button><el-button type="primary" @click="submit">确 定</el-button></template></div></el-dialog>
</template><script>import {AddEditDialogMixin} from "@/component/dialog/AddEditDialogMixin";import AccountFilterSelect from "./accountSelect/AccountFilterSelect";import {getAction} from "@/api";/*定义一个对象*/const defaultForm = {order: {/*订单名称*/name: "",/*客户名称*/client: "",order_number: "",business_module: "",money: "",department_id: ''},departmentList: []};export default {name: "EditOrderDialog",mixins: [AddEditDialogMixin],components: {AccountFilterSelect},data() {return {rules:{order:{name: [{ required: true, message: '名称不能为空',trigger: 'blur'}, // 'blur'是鼠标失去焦点的时候会触发验证],client: [{ required: true, message: '客户名称不能为空',trigger: 'blur'}, // 'blur'是鼠标失去焦点的时候会触发验证],money: [{ required: true, message: '刊例价不能为空',trigger: 'blur'}, // 'blur'是鼠标失去焦点的时候会触发验证],order_number: [{ required: true, message: '订单编号不能为空',trigger: 'blur'}, // 'blur'是鼠标失去焦点的时候会触发验证],column: [{ required: true, message: '业务单元不能为空',trigger: 'blur'}, // 'blur'是鼠标失去焦点的时候会触发验证],},},//控住按钮状态form: defaultForm,defaultForm: defaultForm,formLabelWidth: "160px",url: {add: "/order",edit: "/order",query: "/order"},/*存储业务单元*/business_modules:[]};},created() {this.UploadUrl()},/*用一个计算属性*/computed: {fullTitle() {return this.title + "订单";},DepartmentId(){return this.$store.state.department.id}},methods: {UploadUrl(){getAction("/department/attribute/"+this.DepartmentId).then(res=>{console.log(res)this.business_modules=res.data.business_module})},/*控制任务的添加功能*/addFrom(index,item) {var tasks = {name: "",start_time: null}this.form.departmentList[index].accounts[item].tasks.push(tasks);},onSelectAccount(data) {for (var i = 0; i < data.length; i++) {/*定义一个status */var status = this.isShowDepartment(data[i].department_id, data[i].id, this.form.departmentList);switch (status.code) {case 1:var info = {id: data[i].department_id,name: data[i].departmentName,money: data[i].price,accounts: [{id: data[i].id,name: data[i].name,price: data[i].price,tasks: [{name: "",start_time: null}]}]};this.form.departmentList.push(info);break;case 2:var info = {id: data[i].id,name: data[i].name,price: data[i].price,tasks: [{name: "",start_time: null}]}this.form.departmentList[status.i].money = parseFloat(this.form.departmentList[status.i].money) +parseFloat(data[i].price);this.form.departmentList[status.i].accounts.push(info);break;case 3:break;}}},//判断是否存在部门(三个参数 第一个是部门id  第二个是账号id 第三个是传入对象)/*判断对象 如果里面有传入对象 就开始遍历 如果遍历有对象 返回1 department_id 返回2 有accout 返回2*/isShowDepartment(department_id, account_id, list) {/*如果这个list得长度对象大于0*/if (list.length > 0) {/*循环遍历*/for (var i = 0; i < list.length; i++) {/*如果循环遍历得id等同于当前得department_id*/if (list[i].id == department_id) {/*遍历循环得到当前得长度*/for (var j = 0; j < list[i].accounts.length; j++) {if (list[i].accounts[j].id == account_id) {return {code: 3};}}return {code: 2,i: i};}}return {code: 1}}return {code: 1};},}};
</script><style lang="scss" scoped>.department-container {margin: 20px;padding: 20px;border: 1px dashed #dcdfe6;.department-info {padding: 20px 25px;.department-avatar {vertical-align: middle;}.department-name {vertical-align: middle;color: #707070;font-size: 18px;margin-left: 20px;}}.media-container {margin-bottom: 20px;.media-info {display: inline-block;margin: 10px 50px;padding: 20px 25px;border: 1px dashed #dcdfe6;border-radius: 4px;}}}
</style>

运行结果

工作275:表单验证层级添加相关推荐

  1. 工作275:表单验证重置

    /*3GY歌谣表单验证 通过继续前行*/this.$refs["form"].validate(valid => {if (valid) {setTimeout(() =&g ...

  2. 表单验证,添加动态class

    转载于:https://www.cnblogs.com/xwnlh/p/6675017.html

  3. jQuery Validate 表单验证插件----在class属性中添加校验规则进行简单的校验

    一.下载插件包. 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二.jQuery表单验证插件----添加class属性形式的校验 <!DOCTY ...

  4. 使用jquery validate结合zui作表单验证

    1.引入jquery validate和zui <!-- jQuery (ZUI中的Javascript组件依赖于jQuery) --> <script src="${_b ...

  5. Flask项目实战——6—(前台用户模型、前台登录注册、图形验证码、手机短信验证码、添加表单验证短信验证码请求)

    1.前台用户模型 前台用户模型定义 创建前台模型文件 apps/front/models.py # -*- encoding: utf-8 -*- """ @File : ...

  6. (转)工作了一个星期各位一定累了吧,那我们一起来表单验证一番吧!

    原文地址:http://www.cnblogs.com/yexiaochai/archive/2013/06/01/3111699.html 前言 对于前端来说,没有做过表单验证是不可能的,但是,我们 ...

  7. 工作335:uni-增加表单验证

    <u-form-item prop="account"><u-input v-model="form.account" placeholder ...

  8. 工作了一个星期各位一定累了吧,那我们一起来表单验证一番吧!

    前言 对于前端来说,没有做过表单验证是不可能的,但是,我们一般都是用的别人写好的插件,反正都周末了,我们今天晚上就试着看看自己能不能写一个出来试试呢? PS:该产物纯粹实验产品,丑陋之处请多见谅! 验 ...

  9. float js 正则 验证_使用HTML和Vuejs进行表单验证

    他们说大多数网络应用只是HTML表单.好吧,表单需要验证,谢天谢地,HTML5带有许多优秀的内置表单验证功能,可用于电子邮件,数字,最大值,分钟等.您甚至可以使用模式编写自己的验证规则.在本文中,我将 ...

最新文章

  1. 只能在执行 Render() 的过程中调用 RegisterForEventValidation
  2. Java精选笔记_XML基础
  3. python判断计算机是否有网络连接
  4. gridstack 宽度改变_Model Y在Model 3有哪些改变?
  5. 【Luogu】P3950部落冲突(树链剖分)
  6. 取得 Git 仓库 —— Git 学习笔记 04
  7. 两条平行导线同向电流_电磁学(9)——磁场对电流的作用,安培力
  8. 读《深入分析Java Web技术内幕》
  9. Django中@login_required用法简介
  10. 利用WebHook实现自动部署Git代码
  11. POJ NOI MATH-7830 求小数的某一位
  12. 分享一个非常不错的SSH工具
  13. 国民体质测定标准计算机应用软件,体测标准计算器
  14. Mac 版pr 破解教程,亲测可行。
  15. python好玩的代码-Python有哪些有趣的代码呢,这些代码让
  16. 用金山打字通练习Java常用单词
  17. app开发(Uniapp开发)之Sass学习
  18. Unity3D点击按钮改变材质球颜色
  19. C语言自然数各自出现的次数,2010年计算机等考二级C语言上机考试练习(1)
  20. CHI的Cache Stashing和DVM操作

热门文章

  1. conda使用报错:ImportError:DLL load failed
  2. Chrome浏览器调试踩坑
  3. Linux入门之常用命令(15) lsof
  4. C#:ref和out的联系及区别。
  5. 2017-10-06-构建之法:现代软件工程-阅读笔记
  6. @Repository , @Service , @Controller 和 @Component
  7. 【设计模式】五、单例模式(独一无二的对象)
  8. wu** C语言注意点
  9. php-fpm 内存 facebook,【百家号】脸书百科,安装php-fpm-5.4.16-42.遇到的小问题 Web程序 - 贪吃蛇学院-专业IT技术平台...
  10. html自动按键,VBS脚本和HTML DOM自动操作网页