From 4351e71d782741143a98f86f6648acd16689165f Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 27 May 2022 19:48:02 +0800
Subject: [PATCH] Merge branch 'developer' into hive2.0

---
 zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yypb-form-bak.html |  498 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 498 insertions(+), 0 deletions(-)

diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yypb-form-bak.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yypb-form-bak.html
new file mode 100644
index 0000000..9a6be74
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yypb-form-bak.html
@@ -0,0 +1,498 @@
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
+<head>
+    <meta charset="utf-8">
+    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+          content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+    <meta http-equiv="Cache-Control" content="no-siteapp"/>
+    <LINK rel="Bookmark" href="../images/favicon.ico">
+    <!-- 本框架基本脚本和样式 -->
+
+    <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
+    <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
+    <link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrap.min.css}">
+    <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div class="ibox-content" id="app" v-cloak>
+    <form class="form-horizontal" id="dataform"
+          onsubmit="javascripr:return false;">
+        <input autocomplete="off"   type="hidden" v-model="projService.id">
+
+        <div class="form-group">
+            <label class="col-md-2 control-label">&nbsp;</label>
+            <div class="col-md-12">
+                <div class="panel panel-primary">
+                    <div class="panel-heading">
+                        <div class="row">
+                            <div class="col-md-6">
+                                <h2>客户:{{projService.vipInfo.vipName}}</h2>
+                            </div>
+                            <div class="col-md-6 text-right">
+                                <sapn style="line-height: 30px;">订单编号:{{projService.serviceNo}}</sapn>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="panel-body">
+                        <div class="form-group">
+                            <label class="col-md-1 control-label">预约时间:</label>
+                            <div class="col-md-3">
+                                <el-date-picker @change="changeYyTime()"
+                                                v-model="projService.yyTime"
+                                                type="date"
+                                                placeholder="选择日期">
+                                </el-date-picker>
+                            </div>
+                            <label class="col-md-1 control-label">服务时长</label>
+                            <div class="col-md-3">
+                                <!--                                <el-input @change="changeYyTime()" v-model="projService.totalTime"></el-input>-->
+                                <label class="control-label">{{projService.totalTime}}</label>
+                            </div>
+                        </div>
+                        <div class="form-group">
+
+                            <label class="col-md-1 control-label">床位准备时间</label>
+                            <div class="col-md-3 ">
+                                <el-time-select
+                                        @change="getFreedBed()"
+                                        v-model="projService.bedState.startTimeForm"
+                                        :picker-options="{
+                                            start: startTime,
+                                            step: '00:10',
+                                            end: endTime
+                                          }"
+                                        placeholder="选择时间">
+                                </el-time-select>
+
+                            </div>
+                            <label class="col-md-1 control-label">选择床位</label>
+                            <div class="col-md-3" style="display: flex;">
+                                <el-select style="flex: 5" v-model="projService.bedId" placeholder="请选择床位">
+                                    <el-option
+                                            v-for="item in beds"
+                                            :key="item.id"
+                                            :label="item.bedName"
+                                            :value="item.id">
+                                    </el-option>
+                                </el-select>
+                                <button style="flex: 1" type="button" class="btn btn-success  btn-sm "
+                                        onclick="selectCwqk()"
+                                        title="查看床位情况">
+                                    <i style="font-size: 18px;" class="el-icon-search"></i>
+                                </button>
+                            </div>
+                        </div>
+
+
+                        <div class="form-group">
+                            <label class="col-md-1 control-label">配料师</label>
+                            <div class="col-md-3">
+                                <el-select v-model="projService.devisionId" placeholder="请选择">
+                                    <el-option
+                                            v-for="item in pls"
+                                            :key="item.suId"
+                                            :label="item.suName"
+                                            :value="item.suId">
+                                    </el-option>
+                                </el-select>
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-md-1 control-label">服务设置</label>
+                            <div class="col-md-11">
+                                <table class="table table-bordered">
+                                    <tr>
+                                        <th>项目名称</th>
+                                        <th width="100px">服务时长(分钟)</th>
+                                        <th>服务时间</th>
+                                        <th width="300px">美疗师</th>
+                                        <th style="width: 100px;">提成</th>
+                                    </tr>
+
+                                    <tr v-for="(item,index) in projService.serviceItems">
+                                        <td>{{item.projInfo.name}}</td>
+                                        <td><el-input @change="changeTimeLength" v-model="item.projInfo.timeLength"></el-input></td>
+
+                                        <td>
+                                            <div style="display: flex;">
+                                                <el-time-select style="flex: 6" @change="getFreedBeautyd(index)"
+                                                                v-model="item.beginTimeForm"
+                                                                :picker-options="{
+                                                        start: startTime,
+                                                        step: '00:10',
+                                                        end: endTime,
+                                                      }"
+                                                                placeholder="选择时间">
+                                                </el-time-select>
+                                                <span style="flex: 2;text-align: center;line-height: 30px">至</span>
+                                                <el-time-select style="flex: 6" @change="getFreedBeautyd(index)"
+                                                                v-model="item.endTimeForm"
+                                                                :picker-options="{
+                                                        start: startTime,
+                                                        step: '00:10',
+                                                        end: endTime,
+                                                        minTime: item.beginTimeForm
+                                                      }"
+                                                                placeholder="选择时间">
+                                                </el-time-select>
+                                            </div>
+                                        </td>
+                                        <td>
+                                            <el-select v-model="item.staffId" placeholder="请选择美疗师">
+                                                <el-option
+                                                        v-for="item in beauty"
+                                                        :key="item.suId"
+                                                        :label="item.suName"
+                                                        :value="item.suId">
+                                                </el-option>
+                                            </el-select>
+                                        </td>
+                                        <td>
+                                            <el-input v-model="item.extract"></el-input>
+                                        </td>
+
+                                    </tr>
+
+                                </table>
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label class="col-md-1 control-label">备  注:</label>
+                            <div class="col-md-7">
+                <textarea name="remark" type="text" id="remark"
+                          class="form-control" rows="4"
+                          v-model="projService.remark"></textarea>
+                            </div>
+                        </div>
+
+                        <div class="form-group ">
+                            <div class="col-md-12 text-center">
+                                <a href="javascript:;" @click="submit()"
+                                   class="btn btn-success radius">保存</a>&nbsp;&nbsp;&nbsp;&nbsp;
+                                <button @click="closeFram()" class="btn btn-danger radius" type="button">取消</button>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+        </div>
+
+    </form>
+</div>
+</div>
+<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/bootstrap-3.3.5/js/bootstrap.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
+<script type="text/javascript">
+
+    var id = $.query.get("id");
+    var app = new Vue({
+        el: '#app',
+        data: {
+            projService: {
+                bedState: {startTimeForm: ''}
+            },
+            //美疗师分配列表
+            serviceItems: [],
+            //美疗师
+            beauty: [],
+            pls: [],
+            beds: [],
+            startTime:'08:00',
+            endTime:'23:00',
+        },
+        created: function () {
+            this.loadWorkTime();
+            this.loadInfo();
+        },
+
+        mounted: function () {
+
+        },
+
+        methods: {
+
+
+            loadWorkTime:function(){
+                var _this=this;
+                AjaxProxy.requst({
+                    app: _this,
+                    url: basePath + '/admin/workTime/getWorkTime',
+                    callback: function (data) {
+                        _this.startTime=data.rows[0];
+                        _this.endTime=data.rows[1];
+                    }
+                });
+            },
+
+            loadInfo: function () {
+
+                console.log('加载服务器数据');
+                var _this = this;
+
+
+
+
+                AjaxProxy.requst({
+                    app: _this,
+                    async: false,
+                    url: basePath + '/admin/projService/findProjServiceInfo?id=' + id,
+                    callback: function (data) {
+
+
+                        //处理空对象和时间
+                        let projService = data.mapInfo.projService;
+
+                        let serviceItems = projService.serviceItems;
+
+                        //转换床位时间格式
+                        if (!projService.bedState) {
+                            projService.bedState = {}
+                            projService.bedState.startTimeForm= MTools.formatDate(new Date(), 'hh:mm');
+                        } else {
+                            projService.bedState.startTimeForm = MTools.formatDate(projService.bedState.startTime, 'hh:mm')
+                        }
+
+                        _this.projService = projService;
+
+                        //转换时间格式,服务加载的时间格式要做处理,截取时分展示
+                        for (let i = 0; i < serviceItems.length; i++) {
+                            let beStates = serviceItems[i];
+                            if(beStates.beginTime){
+                                beStates.beginTimeForm = MTools.formatDate(beStates.beginTime, 'hh:mm');
+                                beStates.endTimeForm = MTools.formatDate(beStates.endTime, 'hh:mm');
+                            }else{
+                                beStates.beginTimeForm = MTools.formatDate(new Date(), 'hh:mm');
+                                var today=new Date();
+                                today.setMinutes(today.getMinutes()+beStates.projInfo.timeLength)
+                                beStates.endTimeForm= MTools.formatDate(today, 'hh:mm');
+                            }
+                            _this.getFreedBeautyd(i);
+
+
+                        }
+
+                        //加载床位
+                        _this.getFreedBed();
+
+                        //获取配料师
+                        AjaxProxy.requst({
+                            app: _this,
+                            url: basePath + '/admin/getShopStaffByRoleName?roleName=配料师',
+                            callback: function (data) {
+                                _this.pls = data.rows;
+                            }
+                        });
+
+
+                    }
+                });
+
+
+            }
+            ,
+            closeFram: function () {
+                parent.layer.close(parent.layer.getFrameIndex(window.name));
+            },
+
+            submit: function () {
+                console.log("提交");
+                let _this = this;
+                let projService = _this.projService;
+
+                //床位时间
+                let dateStr = MTools.formatDate(projService.yyTime, 'yyyy/MM/dd') + " " + projService.bedState.startTimeForm + ":00";
+                let startTime = new Date(dateStr);
+
+                let serviceItems = [];
+                for (let i = 0; i < projService.serviceItems.length; i++) {
+                    let beStates = projService.serviceItems[i];
+                    let beginTimeStr = MTools.formatDate(_this.projService.yyTime, 'yyyy/MM/dd') + " " + beStates.beginTimeForm + ":00";
+                    let beginTime = new Date(beginTimeStr);
+                    let endTimeStr = MTools.formatDate(_this.projService.yyTime, 'yyyy/MM/dd') + " " + beStates.endTimeForm + ":00";
+                    let endTime = new Date(endTimeStr);
+
+                    serviceItems.push({
+                        beginTime: beginTime,
+                        endTime: endTime,
+                        staffId: beStates.staffId,
+                        extract: beStates.extract,
+                        excTime : beStates.projInfo.timeLength,
+                        id: beStates.id,
+                    });
+
+                }
+
+
+                var params = {
+                    id: projService.id,
+                    totalTime: projService.totalTime,
+                    remark: projService.remark,
+                    bedId: projService.bedId,
+                    devisionId: projService.devisionId,
+                    yyTime: projService.yyTime,
+                    serviceItems: serviceItems,
+                    //床位时间
+                    bedState: {
+                        startTime: startTime,
+                    }
+                }
+
+
+                if (_this.validate(params)) {
+                    AjaxProxy.requst({
+                        app: _this,
+                        data: params,
+                        url: basePath + '/admin/projService/servicePaiBan',
+                        callback: function (data) {
+                            _this.$message({
+                                message: data.info,
+                                type: 'success',
+                                onClose: function () {
+                                    _this.closeFram();
+                                }
+                            });
+                            if (parent.myGrid) {
+                                parent.myGrid.serchData();
+                            }
+
+                            if (parent.app) {
+                                parent.app.serviceOrderQuery();
+                            }
+                        }
+                    });
+                }
+            }
+            ,
+            validate: function (params) {
+                if (!params.bedId) {
+                    this.$message({
+                        message: '床位不能为空',
+                        type: 'error'
+                    });
+                    return false;
+                }
+                if (!params.totalTime) {
+                    this.$message({
+                        message: '请填写服务时长',
+                        type: 'error'
+                    });
+                    return false;
+                }
+                if (!params.yyTime) {
+                    this.$message({
+                        message: '请填写预约时间',
+                        type: 'error'
+                    });
+                    return false;
+                }
+                for (let i = 0; i < params.serviceItems.length; i++) {
+                    let b = params.serviceItems[i];
+                    if (!b.staffId) {
+                        this.$message({
+                            message: '请选择第' + (i + 1) + '位美疗师',
+                            type: 'error'
+                        });
+                        return false;
+                    }
+                }
+                return true;
+            }
+            ,
+
+            //触发预约时间修改
+            changeYyTime: function () {
+                this.getFreedBed();
+                this.getFreedBeautyd();
+            }
+            ,
+            getFreedBed: function () {
+                console.log('获取空闲床位');
+                let _this = this;
+                let dateStr = MTools.formatDate(_this.projService.yyTime, 'yyyy/MM/dd') + " " + _this.projService.bedState.startTimeForm + ":00";
+                let startTime = new Date(dateStr);
+                if (!_this.projService.bedState.startTimeForm || !_this.projService.totalTime) {
+                    return;
+                }
+                AjaxProxy.requst({
+                    app: _this,
+                    data: {
+                        startTime: startTime,
+                        totalTime: _this.projService.totalTime,
+                        id: _this.projService.id
+                    },
+                    url: basePath + '/admin/bedInfo/showFreedBed',
+                    callback: function (data) {
+                        _this.beds = data.rows;
+                    }
+                });
+            }
+            ,
+            getFreedBeautyd: function (index) {
+                console.log("获取美疗师");
+                let _this = this;
+                let projService = _this.projService;
+                let beStates = projService.serviceItems[index];
+
+                if (beStates == null ||  MTools.isBlank(beStates.beginTimeForm) ||    MTools.isBlank(beStates.endTimeForm )  ){
+                    return;
+                }
+                let beginTimeStr = MTools.formatDate(_this.projService.yyTime, 'yyyy/MM/dd') + " " + beStates.beginTimeForm + ":00";
+                let beginTime = new Date(beginTimeStr);
+                let endTimeStr = MTools.formatDate(_this.projService.yyTime, 'yyyy/MM/dd') + " " + beStates.endTimeForm + ":00";
+                let endTime = new Date(endTimeStr);
+
+                AjaxProxy.requst({
+                    app: _this,
+                    data: {
+                        beginTime: beginTime,
+                        endTime: endTime,
+                        servicesId: _this.projService.id
+                    },
+                    url: basePath + '/admin/beautiWork/getPaiBanBeauticianList',
+                    callback: function (data) {
+
+                        if (data.rows.length > 0) {
+                            _this.beauty = data.rows;
+                        }
+
+                    }
+                });
+
+
+            },
+            changeTimeLength:function() {
+                let _this = this;
+
+                var totalTime = 0;
+                _this.projService.serviceItems.forEach(item => {
+                    totalTime += parseInt(item.projInfo.timeLength);
+                });
+                _this.projService.totalTime = totalTime;
+                _this.changeYyTime();
+            }
+
+        },
+        filters:
+            {
+                format: function (value, patten) {
+                    if (!value) return '';
+                    return MTools.formatDate(value, patten)
+                }
+                ,
+            }
+        ,
+
+    })
+
+
+</script>
+</body>
+</html>
\ No newline at end of file

--
Gitblit v1.9.1