前端工作总结284-抽离出新页面优化

简介: 前端工作总结284-抽离出新页面优化
<template>
  <!--绑定了一个 控制是否为全屏fullscreen close-on-click-modal 是否通过点击model进行关闭 visible是否显示弹出框 close关闭按钮 -->
  <el-dialog @open="open" :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="订单名称" >
            {{form.order.name}}
          <!--  <el-input   v-model="" :disabled="viewMode"/>-->
          </el-form-item>
        </el-col>
        <el-col  :span="12">
          <el-form-item prop="order.client" label="客户名称">
            {{form.order.client}}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item  prop="order.order_number" label="订单编号">
            {{form.order.order_number}}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item  prop="order.business_module" label="业务单元" :label-width="formLabelWidth">
            <!--注意用户的返回值-->
            {{form.order.business_module}}
          </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="订单金额">
            {{form.order.money}}
           <!-- <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="任务金额">
            {{dep.money}}
          </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-row>
            <el-form-item label="刊例价" >
              {{ acc.price }}
            </el-form-item>
            <template v-for="(task, index) in acc.tasks">
              <el-form-item :label="index + 1 + '. 任务名称'">
                {{task.name}}
              </el-form-item>
              <el-form-item :label="index + 1 + '.发布时间'">
                {{task.start_time}}
              </el-form-item>
            </template>
          </template>
        </div>
      </el-card>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <template v-if="approveMode">
        <!--   reject('order',{status:-1,remark:''})-->
        <el-button @click="ResetReson()">审核退回</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>
    <reset-reson ref="reson"></reset-reson>
  </el-dialog>
</template>
<script>
import {
  AddEditDialogMixin
} from "@/component/dialog/AddEditDialogMixin";
import ResetReson from "@/views/order/accoutTask/ResetReson";
import {getAction} from "@/api";
/*定义一个对象*/
const defaultForm = {
  order: {
    /*订单名称*/
    name: "",
    /*客户名称*/
    client: "",
    order_number: "",
    business_module: "",
    money: "",
    department_id: ''
  },
  departmentList: []
};
export default {
  name: "EditOrderDialog",
  mixins: [AddEditDialogMixin],
  components: {
    ResetReson
  },
  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'是鼠标失去焦点的时候会触发验证
          ],
          business_module: [
            { required: true, message: '业务单元不能为空',trigger: 'blur'}, // 'blur'是鼠标失去焦点的时候会触发验证
          ],
        },
      },
      //控住按钮状态
      form: defaultForm,
      defaultForm: defaultForm,
      formLabelWidth: "160px",
      url: {
        add: "/order",
        edit: "/order",
        query: "/order"
      },
      /*存储业务单元*/
      business_modules:[]
    };
  },
  /*用一个计算属性*/
  computed: {
    fullTitle() {
      return this.title + "订单";
    },
    DepartmentId(){
      return this.$store.state.department.id
    }
  },
  created() {
    getAction("/department/attribute/"+this.DepartmentId).then(res=>{
      this.business_modules=res.data.business_module
    })
  },
  methods: {
    ResetReson(){
      this.$refs["reson"].show()
    },
    open(){
      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>
相关文章
|
19天前
|
前端开发 数据安全/隐私保护
.自定义认证前端页面
.自定义认证前端页面
8 1
.自定义认证前端页面
|
8天前
|
缓存 前端开发 JavaScript
利用代码分割优化前端性能:策略与实践
在现代Web开发中,代码分割是提升页面加载性能的有效手段。本文介绍代码分割的概念、重要性及其实现策略,包括动态导入、路由分割等方法,并探讨在React、Vue、Angular等前端框架中的具体应用。
|
1天前
|
搜索推荐 前端开发 定位技术
前端开发人员SEO优化技术方案
不同的搜索引擎提供了服务后台常见功能来优化网站搜索
|
14天前
|
前端开发 安全 JavaScript
在阿里云快速启动Appsmith搭建前端页面
本文介绍了Appsmith的基本信息,并通过阿里云计算巢完成了Appsmith的快速部署,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解底层技术,只需要在控制台图形界面点击几下鼠标就可以快速部署并启动Appsmith,非技术同学也能轻松搞定。
|
13天前
|
编解码 前端开发 JavaScript
从入门到精通:揭秘前端开发中那些不为人知的优化秘籍!
前端开发是充满无限可能的领域,从初学者到资深专家,每个人都追求更快、更稳定、更用户体验友好的网页。本文介绍了四大优化秘籍:1. HTML的精简与语义化;2. CSS的优雅与高效;3. JavaScript的精简与异步加载;4. 图片与资源的优化。通过这些方法,可以显著提升网页性能和用户体验。
18 3
|
22天前
|
缓存 前端开发 JavaScript
前端性能优化:Webpack与Babel的进阶配置与优化策略
【10月更文挑战第28天】在现代Web开发中,Webpack和Babel是不可或缺的工具,分别负责模块打包和ES6+代码转换。本文探讨了它们的进阶配置与优化策略,包括Webpack的代码压缩、缓存优化和代码分割,以及Babel的按需引入polyfill和目标浏览器设置。通过这些优化,可以显著提升应用的加载速度和运行效率,从而改善用户体验。
39 6
|
24天前
|
缓存 监控 前端开发
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第26天】前端工程化是现代Web开发的重要趋势,通过将前端代码视为工程来管理,提高了开发效率和质量。本文详细对比了Webpack和Gulp两大主流构建工具的选择与配置优化,并提供了具体示例代码。Webpack擅长模块化打包和资源管理,而Gulp则在任务编写和自动化构建方面更具灵活性。两者各有优势,需根据项目需求进行选择和优化。
57 7
|
23天前
|
缓存 前端开发 JavaScript
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第27天】在现代前端开发中,构建工具的选择对项目的效率和可维护性至关重要。本文比较了Webpack和Gulp两个流行的构建工具,介绍了它们的特点和适用场景,并提供了配置优化的最佳实践。Webpack适合大型模块化项目,Gulp则适用于快速自动化构建流程。通过合理的配置优化,可以显著提升构建效率和性能。
33 2
|
1月前
|
前端开发 JavaScript
回顾前端页面发送ajax请求方式
回顾前端页面发送ajax请求方式
38 18
|
30天前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅用户体验的秘籍
【10月更文挑战第20天】前端性能优化:打造流畅用户体验的秘籍
34 3
下一篇
无影云桌面