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/yyServiceAddForm.html |  360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 360 insertions(+), 0 deletions(-)

diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yyServiceAddForm.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yyServiceAddForm.html
new file mode 100644
index 0000000..be4b541
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/yyServiceAddForm.html
@@ -0,0 +1,360 @@
+<!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"/>
+	<!-- 本框架基本脚本和样式 -->
+	<script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
+	<link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
+	<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script>
+	<link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
+
+	<!-- 富文本编辑器 -->
+	<script type="text/javascript" charset="utf-8"
+			th:src="@{/plugin/beditor/ueditor.config.js}"></script>
+	<script type="text/javascript" charset="utf-8"
+			th:src="@{/plugin/beditor/ueditor.all.js}">
+	</script>
+	<script type="text/javascript" charset="utf-8"
+			th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script>
+
+
+	<style>
+
+		.mform{
+			display: flex;
+			align-items: center;
+			margin-top: 10px;
+		}
+
+
+		.mixSearchBox .searchResultTable {
+			position: absolute;
+			padding: 10px;
+			border: 1px solid #e4e7ed;
+			border-radius: 4px;
+			background-color: #fff;
+			box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
+			box-sizing: border-box;
+			margin: 10px 0;
+			z-index: 99999999;
+		}
+		.el-icon-delete{
+			cursor: pointer;
+		}
+		.el-icon-delete:hover{
+			color: #F56C6C;
+		}
+		.tabs {
+			margin-bottom: 80px;
+		}
+		.foot_bar2 {
+			top: 98%;
+			position: absolute;
+			width: 98%;
+			height: 80px;
+			overflow: hidden;
+			left: 0px;
+			display: flex;
+			align-items: center;
+			z-index: 99;
+			justify-content: center;
+
+		}
+		.max-height{
+			height: 98%;
+		}
+		.orderBox{
+			position: relative;
+			border-left: 1px solid #EFEFEF;
+			padding-left: 10px;
+			margin-left:10px ;
+		}
+		.openOrClose {
+			 cursor:pointer
+		}
+	</style>
+</head>
+<body>
+<div  class="ibox-content max-height" id="app" v-cloak>
+
+	<el-row class="max-height">
+		<el-col :span="16" >
+			<el-tabs class="tabs" type="card" v-model="activeName" >
+				<el-tab-pane label="项目" name="tab1">
+
+					<el-table
+							:data="projList"
+							style="width: 98%">
+						<el-table-column
+								prop="projName"
+								label="项目">
+						</el-table-column>
+						<el-table-column
+								prop="balance"
+								label="余额"
+								width="180">
+						</el-table-column>
+						<el-table-column
+								prop="surplusCount"
+								label="余次">
+						</el-table-column>
+						<el-table-column
+								prop="failTimeStr"
+								label="有效期">
+						</el-table-column>
+						<el-table-column
+								prop="source"
+								label="来源">
+						</el-table-column>
+						<el-table-column
+								prop="address"
+								label="操作">
+							<template slot-scope="scope">
+								<el-button v-if="scope.row.surplusCount>0"  type="primary"
+										   size="mini"
+										   @click="selected(scope.$index, scope.row)">添加
+								</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+
+
+				</el-tab-pane>
+				<el-tab-pane label="套餐" name="tab2">
+					<template v-for="(item,index) in taocanList">
+						<p class="el-big-title">
+							<span class="openOrClose" v-if="!item.openOrClose" @click="openOrCloseTc(item, index, 1)"><i class="el-icon-arrow-down"></i></span>
+							<span class="openOrClose" v-if="item.openOrClose" @click="openOrCloseTc(item, index, 2)"><i class="el-icon-arrow-up"></i></span>
+							【{{item.isCourse=='N'?'固定套餐':'任选套餐'}}】{{item.projName}}
+							<span style="float: right" v-if="item.failTime != null">有效期:{{item.failTime}}</span>
+							<code v-if="item.isCourse=='Y'" > 剩余次数:<span v-if="item.isInfinite == 'Y'">无限次</span><span v-else>{{item.surplusCount}}</span> </code>
+						</p>
+						<el-table
+								:data="item.taocanProjUse"
+								style="width: 98%" v-show="item.openOrClose">
+							<el-table-column
+									prop="projName"
+									label="项目">
+							</el-table-column>
+							<el-table-column
+									prop="balance"
+									label="余额"
+									width="180">
+							</el-table-column>
+							<el-table-column
+									prop="surplusCount"
+									label="余次">
+							</el-table-column>
+<!--							<el-table-column-->
+<!--									prop="failTimeStr"-->
+<!--									label="有效期">-->
+<!--							</el-table-column>-->
+							<el-table-column
+									prop="source"
+									label="来源">
+							</el-table-column>
+							<el-table-column
+									prop="address"
+									label="操作">
+								<template slot-scope="scope">
+									<el-button v-if="scope.row.surplusCount>0"  type="primary"
+											   size="mini"
+											   @click="selected(scope.$index, scope.row, item.projName)">添加
+									</el-button>
+								</template>
+							</el-table-column>
+						</el-table>
+					</template>
+<!--					<el-row style="text-align: center; margin-top: 5px;">-->
+<!--						<el-link type="primary" v-if="!tcIsOpen && taocanList.length > 0" @click="tcIsOpen = true">点击展开</el-link>-->
+<!--						<el-link type="primary" v-if="tcIsOpen" @click="tcIsOpen = false">点击隐藏</el-link>-->
+<!--					</el-row>-->
+				</el-tab-pane>
+
+			</el-tabs>
+		</el-col>
+		<el-col :span="7" class="orderBox max-height"  >
+			<p class="el-big-title">服务开单</p>
+			<el-row class="mform"  v-for="(item,index) in orderItemList" >
+				<el-col :span="16" >{{item.projUse.projName}}</el-col>
+				<el-col :span="6" >
+					<el-input @blur="checkCount(item)"  type="number"  v-model="item.count">
+					</el-input>
+				</el-col>
+				<el-col :offset="1" :span="1" >
+					<i @click="remove(index)" class="el-icon-delete "></i>
+				</el-col>
+			</el-row>
+			<el-row class="foot_bar2">
+				<el-button :loading="submiting" type="primary" @click="submitForm('form')" >添加</el-button>
+				<el-button @click="closeFram()">取消</el-button>
+			</el-row>
+		</el-col>
+	</el-row>
+
+
+
+</div>
+</body>
+<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="@{/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  th:src="@{/plugin/vue-treeselect/vue-treeselect.umd.min.js}"></script>
+<link rel="stylesheet"  th:href="@{/plugin/vue-treeselect/vue-treeselect.min.css}">
+
+
+<script>
+	var id = $.query.get("id");
+	//校验方法
+	var ValidatorFactory = {
+		validateUseCount: function (rule, value, callback) {
+			if ((true)) {
+				return callback;
+			} else {
+				return callback(new Error('请输入套餐最大使用次数'));
+			}
+		}
+	};
+
+	Vue.component('ValidatorFactory', ValidatorFactory);
+	Vue.component('treeselect', VueTreeselect.Treeselect)
+
+	var app = new Vue({
+		el: '#app',
+		data: {
+			submiting:false,
+			activeName:"tab1",
+			orderItemList:[],
+			projList:[],
+			taocanList:[],
+			tcIsOpen : false,
+			yyTime:new Date(),
+
+
+		},
+
+		/**
+		 * 初始化数据表
+		 */
+		created: function () {
+			this.loadinfo();
+		},
+
+		methods: {
+			/**
+			 * 提交表单
+			 * */
+			submitForm(formName) {
+				let _this=this;
+				_this.submiting = true;
+				if(_this.orderItemList.length<1){
+					_this.$message.error('请选择下单项目');
+					return false;
+				}
+				 let formData={
+					 vipId:id,
+					 serviceItems:[],
+				 }
+
+				parent.app.addProjItems(_this.orderItemList);
+				_this.closeFram();
+			},
+			open(data) {
+				let _this=this;
+				this.$confirm('服务创建成功是否马上排班?', '确认信息', {
+					distinguishCancelAndClose: true,
+					confirmButtonText: '马上排班',
+					cancelButtonText: '暂不排班'
+				}).then(() => {
+							window.location.href=basePath+"/admin/projService/yypb?pageFlae=1&id="+data.rows[0].id;
+						})
+						.catch(action => {
+							 if(action === 'cancel'){
+								 _this.submiting = false;
+								 _this.closeFram();
+							 }
+						});
+			},
+
+			remove(index){
+				this.orderItemList.splice(index, 1);
+			},
+			checkCount(item){
+				if(item.count>item.projUse.surplusCount){
+					item.count=item.projUse.surplusCount;
+					this.$message.error('下单次数不能大于余次');
+				}else if(item.count<0){
+					item.count=1;
+					this.$message.error('下单次数不能小于0');
+				}
+			},
+			/**
+			 * 选择产品
+			 * */
+			selected(index, row, name) {
+
+					//是否已经被选择了
+					let selected = false;
+					this.orderItemList.forEach(item => {
+						if (item.projUse.id == row.id) {
+							selected = true;
+							//叠加次数
+							if(item.count<item.projUse.surplusCount){
+								item.count=item.count+1;
+							}else{
+								this.$message.error('下单次数不能大于余次');
+							}
+
+							return;
+						}
+					});
+					if (!selected) {
+						if(row.surplusCount>0){
+							this.orderItemList.push({
+								projUse: row,
+								count: 1,
+								name : name
+							});
+						}
+
+					}
+
+			},
+			loadinfo(){
+				let _this=this;
+				AjaxProxy.requst({
+					app: _this,
+					url: basePath + "/admin/projService/getUserProjInfo?vipId="+id,
+					callback: function (data) {
+						_this.projList = data.mapInfo.projList;
+						_this.taocanList = data.mapInfo.taoCanList;
+					}
+				});
+			},
+			closeFram: function () {
+				parent.layer.close(parent.layer.getFrameIndex(window.name));
+			},
+			openOrCloseTc : function (item, index, value) {
+				if (value == 1) {
+					item.openOrClose = true;
+				} else {
+					item.openOrClose = false;
+				}
+				Vue.set(this.taocanList, index, item);
+			}
+		}
+
+	})
+</script>
+
+</body>
+</html>
+

--
Gitblit v1.9.1