更新新的合同

This commit is contained in:
huangdeliang 2020-11-04 20:53:56 +08:00
parent ed07eaad43
commit 676e08cdce
5 changed files with 176 additions and 134 deletions
ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom
ruoyi-custom/src/main
java/com/ruoyi/custom/domain
resources/mapper/custom
ruoyi-ui/src/views/custom
contract
signContract

@ -37,6 +37,11 @@ public class SysContractController extends BaseController {
public TableDataInfo list(SysContract sysContract) {
startPage();
List<SysContract> list = sysContractService.selectSysContractList(sysContract);
for (SysContract contract : list) {
if (contract.getSignName() != null && !contract.getSignName().equals("") && !contract.getName().equals(contract.getSignName())) {
contract.setName(contract.getName() + "" + contract.getSignName() + "");
}
}
return getDataTable(list);
}
@ -101,7 +106,6 @@ public class SysContractController extends BaseController {
} else {
Map<String, String> data = new HashMap<>();
data.put("id", contract.getId().toString());
data.put("name", contract.getName());
data.put("amount", contract.getAmount().toString());
data.put("serveTime", contract.getServeTime() + "");
data.put("tutor", contract.getTutor());

@ -28,6 +28,11 @@ public class SysContract extends BaseEntity {
@Excel(name = "客户姓名")
private String name;
/**
* 客户签名
*/
private String signName;
/**
* 客户身份证
*/
@ -66,6 +71,9 @@ public class SysContract extends BaseEntity {
*/
private String signDate;
/**
* 营养师
*/
private String tutor;
/**
@ -76,6 +84,14 @@ public class SysContract extends BaseEntity {
private String servePromise;
public String getSignName() {
return signName;
}
public void setSignName(String signName) {
this.signName = signName;
}
public String getTutor() {
return tutor;
}
@ -84,14 +100,14 @@ public class SysContract extends BaseEntity {
this.tutor = tutor;
}
public void setServePromise(String servePromise) {
this.servePromise = servePromise;
}
public String getServePromise() {
return servePromise;
}
public void setServePromise(String servePromise) {
this.servePromise = servePromise;
}
public Long getId() {
return id;
}
@ -128,6 +144,10 @@ public class SysContract extends BaseEntity {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getAmountUpper() {
return amountUpper;
}
@ -136,10 +156,6 @@ public class SysContract extends BaseEntity {
this.amountUpper = amountUpper;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getPath() {
return path;
}

@ -1,54 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.custom.mapper.SysContractMapper">
<resultMap type="SysContract" id="SysContractResult">
<result property="id" column="id" />
<result property="status" column="status" />
<result property="name" column="name" />
<result property="cusId" column="cus_id" />
<result property="phone" column="phone" />
<result property="tutor" column="tutor" />
<result property="serveTime" column="serve_time" />
<result property="servePromise" column="serve_promise" />
<result property="amount" column="amount" />
<result property="path" column="path" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="id" column="id"/>
<result property="status" column="status"/>
<result property="name" column="name"/>
<result property="signName" column="sign_name"/>
<result property="cusId" column="cus_id"/>
<result property="phone" column="phone"/>
<result property="tutor" column="tutor"/>
<result property="serveTime" column="serve_time"/>
<result property="servePromise" column="serve_promise"/>
<result property="amount" column="amount"/>
<result property="path" column="path"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
</resultMap>
<sql id="selectSysContractVo">
select id, status, name, phone, cus_id, serve_time, tutor, serve_promise, amount, path, create_by, create_time, update_by, update_time, remark from sys_contract
select id, status, name, sign_name, phone, cus_id, serve_time, tutor, serve_promise, amount, path, create_by, create_time, update_by, update_time, remark from sys_contract
</sql>
<select id="selectSysContractList" parameterType="SysContract" resultMap="SysContractResult">
<include refid="selectSysContractVo"/>
<where>
<if test="id != null "> and id = #{id}</if>
<if test="status != null "> and status = #{status}</if>
<if test="tutor != null "> and tutor = #{tutor}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
<where>
<if test="id != null ">and id = #{id}</if>
<if test="status != null ">and status = #{status}</if>
<if test="tutor != null and tutor != '' ">and tutor = #{tutor}</if>
<if test="name != null and name != ''">and name like concat('%', #{name}, '%')</if>
<if test="phone != null and phone != ''">and phone = #{phone}</if>
</where>
order by create_time desc
</select>
<select id="selectSysContractById" parameterType="Long" resultMap="SysContractResult">
<include refid="selectSysContractVo"/>
where id = #{id}
</select>
<insert id="insertSysContract" parameterType="SysContract" useGeneratedKeys="true" keyProperty="id">
insert into sys_contract
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="status != null">status,</if>
<if test="name != null and name != ''">name,</if>
<if test="signName != null and signName != ''">sign_name,</if>
<if test="tutor != null and tutor != ''">tutor,</if>
<if test="cusId != null and cusId != ''">cus_id,</if>
<if test="phone != null">phone,</if>
@ -61,12 +63,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="status != null">#{status},</if>
<if test="name != null and name != ''">#{name},</if>
<if test="tutor != null and tutor != ''">#{tutor},</if>
<if test="signName != null and signName != ''">#{signName},</if>
<if test="tutor != null and name != ''">#{tutor},</if>
<if test="cusId != null and cusId != ''">#{cusId},</if>
<if test="phone != null">#{phone},</if>
<if test="serveTime != null">#{serveTime},</if>
@ -78,7 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</trim>
</insert>
<update id="updateSysContract" parameterType="SysContract">
@ -86,7 +89,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="SET" suffixOverrides=",">
<if test="status != null">status = #{status},</if>
<if test="name != null and name != ''">name = #{name},</if>
<if test="tutor != null and tutor != ''">tutor = #{tutor},</if>
<if test="signName != null and signName != ''">sign_name = #{signName},</if>
<if test="tutor != null">tutor = #{tutor},</if>
<if test="cusId != null and cusId != ''">cus_id = #{cusId},</if>
<if test="phone != null">phone = #{phone},</if>
<if test="serveTime != null">serve_time = #{serveTime},</if>
@ -107,10 +111,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteSysContractByIds" parameterType="String">
delete from sys_contract where id in
delete from sys_contract where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -162,6 +162,13 @@
<el-form-item label="客户姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入客户姓名"/>
</el-form-item>
<el-form-item label="金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入金额"/>
</el-form-item>
<el-form-item label="服务承诺" prop="servePromise">
<el-input style="width: 193px; margin-right: 12px" v-model="form.servePromise" placeholder="请输入服务承诺"/>
</el-form-item>
<el-form-item label="营养师" prop="nutritionistId">
<el-select v-model="form.nutritionistId" placeholder="请选择营养师" clearable size="small">
<el-option v-for="dict in nutritionistIdOptions"
@ -170,12 +177,6 @@
:value="parseInt(dict.dictValue)"/>
</el-select>
</el-form-item>
<el-form-item label="金额" prop="amount">
<el-input v-model="form.amount" placeholder="请输入金额"/>
</el-form-item>
<el-form-item label="服务承诺" prop="servePromise">
<el-input v-model="form.servePromise" placeholder="请输入服务承诺"/>
</el-form-item>
<el-form-item label="服务时间" prop="serveTime">
<el-select v-model="form.serveTime" placeholder="请选择服务时间">
<el-option
@ -199,14 +200,7 @@
</template>
<script>
import {
addContract,
delContract,
exportContract,
getContract,
listContract,
updateContract
} from "@/api/custom/contract";
import {addContract, listContract} from "@/api/custom/contract";
import {getOptions} from "@/api/custom/order";
@ -266,6 +260,9 @@
],
serveTime: [
{required: true, message: "请选择服务时间", trigger: "blur"}
],
nutritionistId: [
{required: true, message: "请选择营养师", trigger: "blur"}
]
}
};
@ -358,68 +355,69 @@
this.title = "创建合同";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getContract(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改合同";
});
},
// handleUpdate(row) {
// this.reset();
// const id = row.id || this.ids
// getContract(id).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "";
// });
// },
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateContract(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addContract(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
// if (this.form.id != null) {
// updateContract(this.form).then(response => {
// if (response.code === 200) {
// this.msgSuccess("");
// this.open = false;
// this.getList();
// }
// });
// } else {
this.form.tutor = this.selectDictLabel(this.nutritionistIdOptions, this.form.nutritionistId)
addContract(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
// }
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除合同编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return delContract(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function () {
});
},
// handleDelete(row) {
// const ids = row.id || this.ids;
// this.$confirm('"' + ids + '"?', "", {
// confirmButtonText: "",
// cancelButtonText: "",
// type: "warning"
// }).then(function () {
// return delContract(ids);
// }).then(() => {
// this.getList();
// this.msgSuccess("");
// }).catch(function () {
// });
// },
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm('是否确认导出所有合同数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function () {
return exportContract(queryParams);
}).then(response => {
this.download(response.msg);
}).catch(function () {
});
},
// handleExport() {
// const queryParams = this.queryParams;
// this.$confirm('?', "", {
// confirmButtonText: "",
// cancelButtonText: "",
// type: "warning"
// }).then(function () {
// return exportContract(queryParams);
// }).then(response => {
// this.download(response.msg);
// }).catch(function () {
// });
// },
handleCopy(path) {
this.copyValue = window.location.origin.replace('manage', 'sign') + path;
const btnCopy = new Clipboard('.copyBtn');

@ -5,14 +5,20 @@
<el-form-item label="服务方" style="margin: 0">
<span>深圳市胜唐科技有限公司</span>
</el-form-item>
<el-form-item label="导师" style="margin: 0">
<span>{{form.tutor}}</span>
</el-form-item>
<el-form-item label="服务费" style="margin: 0">
<span>{{form.amount}}</span>
</el-form-item>
<el-form-item label="服务时长" style="margin: 0">
<span>{{form.serveTimeStr}}</span>
</el-form-item>
<el-form-item label="姓名" prop="cusName">
<el-input v-model="form.cusName" placeholder="请输入客户姓名"/>
<el-form-item label="服务承诺" style="margin: 0">
<span>健康吃瘦{{form.serveTimeStr}}</span>
</el-form-item>
<el-form-item label="姓名" prop="signName">
<el-input v-model="form.signName" placeholder="请输入客户姓名"/>
</el-form-item>
<el-form-item label="证件号" prop="cusId">
<el-input v-model="form.cusId" placeholder="请输入证件号"/>
@ -28,47 +34,64 @@
</div>
<el-button type="primary" style="width: 100%" @click="submitForm" :disabled="!read">提交签约</el-button>
<el-dialog
title="服务合同"
title="营养减脂服务合同"
:visible.sync="dialogVisible"
width="90%"
custom-class="contract_dialog"
center>
<div class="dialog-detail">
<p>甲方胜唐体控深圳市胜唐科技有限公司</p>
<p>乙方<b>{{form.name}}</b></p>
<p>乙方<b>{{form.signName}}</b></p>
<p>甲乙双方本着诚信合作互惠互利的原则依据中华人民共和国有关法律经友好协商现就胜唐体控减肥咨询指导服务合作相关事宣达成一致协议以兹共同遵守
如果需要减脂的乙方未成年应由乙方法定监护人代签本合同乙方享受同等法律权益</p>
若乙方为未成年应由乙方法定监护人代签本合同乙方享受同等法律权益</p>
<p>
第一条甲方资质与服务保证
<div class="line-rule">1甲方保证是在工商部门注册合法经营的正规公司</div>
<div class="line-rule">2甲方保证为乙方提供知名体重管理专家导师全程服务</div>
<div class="line-rule">3甲方保证按承诺的方式靠一日三餐吃瘦绝不使用仪器及针药亦不服用药物等达到双方约定效果</div>
<div class="line-rule">4甲方保证全程为乙方提供本合同所承诺的服务内容</div>
第一条 甲方资质与服务保证
<div class="line-rule">1甲方经由工商部门注册合法经营的正规公司</div>
<div class="line-rule">2甲方在合约期内为乙方提供体重管理专家导师 <b>{{form.tutor}}</b> 提供营养减脂服务</div>
<div class="line-rule">3甲方按与乙方约定事项及服务内容为乙方提供减脂服务通过调节一日三餐不使用任何仪器针药不使用医疗类药物等</div>
<div class="line-rule">4提供专业营养指导咨询服务</div>
<div class="line-rule">5服务标准</div>
<div style="margin-left: 24px">a拥有体重管理专家导师亲自每天主动服务节假日除外</div>
<div style="margin-left: 24px">b享受免费赠送营养基础知识学习肥胖与生活习惯知识学习享受专家亲自培训初級自我管理体重知识</div>
<div style="margin-left: 24px">5.1甲方为乙方每周提供一对一有效咨询时间6日每日咨询服务时间为早10:00晚20:30每日服务10.5小时法定节假日除外</div>
<div style="margin-left: 24px">5.2享受营养学基础知识学习肥胖与生活习惯知识学习享受营养师亲自培训初级自我体重管理知识</div>
<div style="margin-left: 24px">5.3甲方为乙方定制营养减脂饮食方案7天为一期每期结束前12更新发送下一期饮食减脂方案</div>
<div style="margin-left: 24px">5.4甲方对乙方所做出的承诺不得超出力所能及的范围不得夸大吹嘘作假服务效果及疗程特性</div>
<div style="margin-left: 24px">5.5甲方需保证提供服务的导师具备相关的服务资质证书</div>
<div style="margin-left: 24px">5.6甲方为乙方提供的服务方式主要为网络线上进行指导服务不涉及线下服务内容</div>
<div style="margin-left: 24px">5.7乙方不能在家佐餐需要进行外食指导甲方有责任及义务为乙方提供对应的指导</div>
<div style="margin-left: 24px">5.8乙方自订购服务日起享有单一营养师的指导及咨询服务如需中途更换指导老师需在当期方案执行结束至少3日内告知以便于更换指导</div>
<div style="margin-left: 24px">5.9甲方每日会敦促乙方进行服务效果反馈一日三餐需进行打卡</div>
<div style="margin-left: 24px">5.10甲方在接收到乙方发送咨询需求3.5小时内需及时为乙方解答周日及法定节假日除外</div>
</p>
<p>第二条 合作内容及费用
<div class="line-rule">11经甲乙双方协商确定乙方向甲方购买 <b>{{form.serveTimeStr}}</b> 胜唐体控瘦身指导服务以下简称服务</div>
<div class="line-rule">12乙方向甲方购买 <b>{{form.serveTimeStr}}</b> 经甲乙双方协商确定乙方向甲方支付疗程费用共为人民币<b>{{form.amount}}</b> 大写<b>{{form.amountUpper}}</b>
</div>
<div class="line-rule">经甲乙双方协商确定乙方向甲方购买 <b>{{form.serveTimeStr}}</b> 胜唐体控瘦身指导服务以下简称服务
经甲乙双方协商一致确定乙方向甲方支付服务费用为人民币 <b>{{form.amount}}</b>大写<b>{{form.amountUpper}}</b></div>
</p>
<p>第三条 服务期约定
<div class="line-rule">1服务时间阶段服务指导期服务跟踪期免费咨询期具体安排由甲方根据乙方的实际情况与乙方协商确定</div>
<div class="line-rule">2因不可抗拒的因素如意外怀孕等而暂停服务指导其后续服务期限由甲乙方协商确定</div>
<div class="line-rule">3减肥需要双方的配合在不是甲方技术问题的情况下乙方不执行营养师的指导导致没有达到预期效果责任由乙方承担根据个人体质不同在调理营养健康的前提下健康吃瘦 <b>{{form.servePromise}}</b>
<div class="line-rule">3减肥需要双方的配合在不是甲方技术问题的情况下乙方不执行营养师的指导导致没有达到预期效果责任由乙方承担根据个人体质不同在调理营养健康的前提下健康吃瘦 <b>{{form.servePromise}}</b>
</div>
<div class="line-rule">
4乙方应按甲方制定的饮食方案来饮食承诺在未与甲方沟通前擅自吃方案之外的高热量高油高盐高糖等不利于健康和减脂的饮食服务期内擅自暴食导致体重上涨次数超过3次视为乙方主动放弃营养减脂且甲方无需免费延长服务时间
4乙方应按甲方制定的饮食方案来饮食承诺在未与甲方沟通前擅自吃方案之外的高热量高油高盐高糖等不利于健康和减脂的饮食服务期内擅自暴食导致体重上涨次数超过3次视为乙方主动放弃营养减脂且甲方无需免费延长服务时间
</div>
<div class="line-rule">
5乙方在一个疗程内享有2次暂停服务的机会在暂停前应与甲方沟通确认暂停前已减重斤数累积到总减重结果中在暂停结束后从新体重开始甲方服务乙方继续完成承诺的减重斤数包瘦斤数 - 暂停前已成功减重数
5乙方在一个服务期内享有2次暂停服务的机会在暂停前应与甲方沟通确认暂停前已减重斤数累积到总减重结果中在暂停结束后自新体重开始甲方服务乙方继续完成承诺的减重斤数包瘦斤数 - 暂停前已成功减重数
</div>
<div class="line-rule">6乙方隐瞒病情或身体情况误导营养师的造成的后果由乙方承担并且甲方不予退款</div>
<div class="line-rule">
7乙方同意并且理解甲方定制营养方案付出的时间和智力成本乙方在第一周营养方案定制交付之前申请退款的可退款90%在第一周营养方案定制交付之后因个人原因非不可抗力因素则不予退款
</div>
<div class="line-rule">
8若乙方具有特殊病史慢病疾病食用减肥药物或产品使用激素药物中药及其他疗程性药物调理需在购买减脂服务前告知甲方以便于合理安排减脂计划若乙方未告知甲方相关的疾病史以及药物使用情况因此造成的负面效果由乙方自行承担
</div>
<div class="line-rule">9甲方在乙方告知所有身体情况及药物服用情况甲方仍未做出合理安排对乙方的身体及心理造成影响时乙方可申请扣除已进行服务期外相应的服务款项退还未进行服务期对应款项
</div>
</p>
<p>公司地址深圳市宝安区西乡街道宝立方中心创意研发大厦B座708</p>
<p>公司地址深圳市宝安区西乡街道宝民二路缤纷时代广场3楼318</p>
<p>联系电话0755-23213903</p>
</div>
<span slot="footer" class="dialog-footer">
@ -88,13 +111,10 @@
name: 'sign',
data() {
const checkCusName = (rule, value, callback) => {
const checkSignName = (rule, value, callback) => {
if (!value) {
return callback(new Error('姓名不能为空'))
}
// if (value !== this.form.name) {
// return callback(new Error(''))
// }
callback();
}
@ -159,8 +179,8 @@
{label: '12个月', value: 360},
],
rules: {
cusName: [
{required: true, trigger: "blur", validator: checkCusName}
signName: [
{required: true, trigger: "blur", validator: checkSignName}
],
phone: [
{required: true, trigger: "blur", validator: checkPhone}