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"> </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>
+ <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