| <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"> |
| |
| |
| <el-form ref="form" :rules="rules" :model="form" size="medium" :label-width="formLabelWidth" v-loading="loading"> |
| |
| |
| |
| <el-card header="订单信息" shadow="hover"> |
| <el-col :span="12"> |
| <el-form-item prop="order.name" label="订单名称" > |
| {{form.order.name}} |
| |
| </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-col> |
| |
| <el-col :span="12"> |
| <el-form-item prop="order.money" label="订单金额"> |
| {{form.order.money}} |
| |
| </el-form-item> |
| </el-col> |
| </el-card> |
| |
| <el-card shadow="hover" header="任务信息" style="margin-top: 20px"> |
| |
| <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"> |
| |
| <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'}, |
| ], |
| client: [ |
| { required: true, message: '客户名称不能为空',trigger: 'blur'}, |
| ], |
| money: [ |
| { required: true, message: '刊例价不能为空',trigger: 'blur'}, |
| ], |
| order_number: [ |
| { required: true, message: '订单编号不能为空',trigger: 'blur'}, |
| ], |
| business_module: [ |
| { required: true, message: '业务单元不能为空',trigger: '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++) { |
| |
| 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; |
| |
| } |
| } |
| }, |
| |
| |
| isShowDepartment(department_id, account_id, list) { |
| |
| if (list.length > 0) { |
| |
| for (var i = 0; i < list.length; i++) { |
| |
| 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> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!