From c253b555c7905c5136d47cd615ef545fa50cc6ad Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sun, 20 Feb 2022 21:24:16 +0800 Subject: [PATCH] Merge branch 'api_score_meger' --- zq-erp/src/main/resources/templates/views/admin/hive-erp/products/achieverule-list.html | 402 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 402 insertions(+), 0 deletions(-) diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/products/achieverule-list.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/products/achieverule-list.html new file mode 100644 index 0000000..c82e927 --- /dev/null +++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/products/achieverule-list.html @@ -0,0 +1,402 @@ +<!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 th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/> + <title></title> + <style> + .panel-body { + overflow: hidden; + } + + .buttonPanel { + background: #ffffff; + padding: 10px 10px; + margin: 0px 0px 10px 0px; + } + + .rowPanel { + background: #ffffff; + padding: 0px 10px; + padding-top: 10px; + margin: 0px 0px 10px 0px; + } + + .paginationStyle { + background: #ffffff; + padding: 10px 10px; + margin: 0px 0px 10px 0px; + text-align: right; + } + </style> +</head> +<body> +<div class="panel-body" id="app"> + + <el-row class="buttonPanel"> + <el-button @click="openForm('add')" type="primary">新增</el-button> + </el-row> + + <el-row class="rowPanel"> + <el-form ref="form" :model="form" inline> + <el-form-item label="规则名称" prop="queryKey"> + <el-input v-model="form.keyword" placeholder="请输入规则名称"></el-input> + </el-form-item> + <el-button type="primary" @click="search">搜索</el-button> + <el-button @click="resetForm('form')">重置</el-button> + </el-form> + </el-row> + + <el-row class="table-style"> + + <el-table id="proj" :data="table.rows" :height="height" stripe @sort-change="sortChange"> + <el-table-column + prop="name" + label="规则名称"> + </el-table-column> + <el-table-column + prop="updateTime" + sortable="custom" + label="修改时间" + show-overflow-tooltip + width="180"> + </el-table-column> + <el-table-column + prop="updateBy" + label="修改人"> + </el-table-column> + + <el-table-column + prop="createTime" + sortable="custom" + label="创建时间" + show-overflow-tooltip + width="180"> + </el-table-column> + <el-table-column + prop="createBy" + label="创建人" + width="180"> + </el-table-column> + + <el-table-column label="操作"> + <template slot-scope="scope"> + <el-button type="text" @click="openForm('modify', scope.row)" size="small">修改</el-button> + <el-button type="text" @click="remove(scope.$index, scope.row)" size="small">删除</el-button> + </template> + </el-table-column> + </el-table> + </el-row> + <el-row class="paginationStyle"> + <el-pagination background + @size-change="changePageSize" + @current-change="changeCurrentPage" + :current-page="table.currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="table.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="table.total"> + </el-pagination> + </el-row> + + <el-dialog + :title="title" + :visible.sync="dialogVisible" + width="60%" + :before-close="handleClose"> + + <el-form :model="formData" ref="ruleForm" label-width="100px" class="demo-ruleForm"> + + <el-form-item label="规则名称" > + <el-input style="width: 200px" v-model="formData.name"></el-input> + <el-button type="primary" @click="addRuleItem()" size="small">添加规则</el-button> + </el-form-item> + + <el-form-item label="绩效方案" > + <el-table + :data="formData.ruleItemList" + style="width: 100%"> + <el-table-column + label="业绩类型" + > + <template slot-scope="scope"> + <el-select v-model="scope.row.achieveType" placeholder="请选择业绩类型"> + <el-option label="本金消耗" :value="1"></el-option> + <el-option label="赠送消耗" :value="2"></el-option> + </el-select> + </template> + </el-table-column> + <el-table-column + label="计算方式" + > + <template slot-scope="scope"> + <el-select v-model="scope.row.calculationType" placeholder="请选择计算方式"> + <el-option label="固定金额" :value="1"></el-option> + <el-option label="百分比(%)" :value="2"></el-option> + </el-select> + </template> + </el-table-column> + <el-table-column + label="区间" + width="240"> + <template slot-scope="scope"> + <el-input style="width: 100px" v-model="scope.row.lower"></el-input> + - + <el-input style="width: 100px" v-model="scope.row.upper"></el-input> + </template> + </el-table-column> + <el-table-column + label="业绩"> + <template slot-scope="scope"> + <el-input v-model="scope.row.achieve"></el-input> + </template> + </el-table-column> + <el-table-column label="操作"> + <template slot-scope="scope"> + <el-button type="text" @click="removeRuleItem(scope.$index, scope.row)" size="small">删除</el-button> + </template> + </el-table-column> + </el-table> + </el-form-item> + + + + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">取 消</el-button> + <el-button type="primary" @click="submitForm">确 定</el-button> + </span> +</el-dialog> + + +</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="@{/plugin/layer/layer.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" th:src="@{/plugin/moment.min.js}"></script> +<script type="text/javascript" th:inline="javascript"> + + var vue = new Vue({ + el: '#app', + data: { + table: { + rows: [], + total: 0, + pageSize: 10, + currentPage: 1, + }, + form: { + queryKey: null, + }, + + height: 'calc(100vh - 240px)', + dialogVisible: false, + title: '', + formData: { + name: '', + ruleItemList: [ + { + achieveType: 1, + calculationType: 1, + lower: '', + upper: '', + achieve: '', + } + ] + }, + + type: '', + + }, + created: function () { + this.loadData(); + window.addEventListener("keydown", this.keydown); + }, + methods: { + changePageSize(val) { + this.table.pageSize = val; + this.loadData(); + }, + changeCurrentPage(val) { + this.table.currentPage = val; + this.loadData(); + }, + resetForm(formName) { + this.$refs[formName].resetFields(); + }, + sortChange: function (column) { + if (column.order) { + if (column.order.indexOf("desc")) { + this.form.order = "desc"; + } else { + this.form.order = "asc"; + } + this.form.sort = column.prop; + this.loadData(); + } + }, + loadData: function () { + let _this = this; + let data = _this.getRequestParam(); + data.pageSize = _this.table.pageSize; + data.pageNum = _this.table.currentPage; + AjaxProxy.requst({ + app: _this, + data: data, + url: basePath + '/admin/achieveRule/selectList', + callback: function (data) { + _this.table.rows = data.rows; + _this.table.total = data.total; + } + }); + }, + getRequestParam() { + let _this = this; + return { + queryKey: _this.form.queryKey, + } + }, + search: function () { + this.table.currentPage = 1; + this.loadData(); + }, + keydown(evt) { + if (evt.keyCode == 13) { + this.search(); + } + }, + + remove(index, row) { + let _this = this; + this.$confirm('确认删除该规则吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + AjaxProxy.requst({ + app: _this, + type: 'GET', + url: basePath + "/admin/achieveRule/removeById/" + row.id, + callback: function (data) { + _this.loadData(); + _this.$message({ + type: 'success', + message: data.info, + }); + } + }); + }).catch(() => { + this.$message({ + type: 'info', + message: '已取消删除' + }); + }); + }, + //开启表单弹窗 + openForm(type, data) { + + if (type == 'add') { + this.title = '新增规则'; + //this.$refs['formName'].resetFields(); + + } else { + this.title = '修改规则'; + this.formData = data; + } + this.type = type; + this.dialogVisible = true; + }, + //提交表单 + submitForm() { + let url = basePath + "/admin/achieveRule/add"; + if (this.type == 'modify') { + url = basePath + "/admin/achieveRule/update"; + } + let data=this.formData; + + if(MTools.isBlank(data.name)){this.$message.error("请输入规则名称");return;} + + if(data.ruleItemList.length<1){ + this.$message.error("最少需要一个计算规则");;return;} + let flag=true; + data.ruleItemList.forEach(item=>{ + if(MTools.isBlank(item.lower)){ + this.$message.error("请输入业绩下限");flag=false;} + else if(MTools.isBlank(item.upper)){ + this.$message.error("请输入业绩上限");flag=false;} + else if(MTools.isBlank(item.achieve)){ + this.$message.error("请输入业绩金额或者比例");flag=false;} + }) + if(flag){ + var _this=this; + AjaxProxy.requst({ + app: _this, + data:data, + url:url, + callback: function (data) { + _this.$message.success(data.info); + _this.loadData(); + _this.dialogVisible = false; + _this.formData={ + name: '', + ruleItemList: [ + { + achieveType: 1, + calculationType: 1, + lower: '', + upper: '', + achieve: '', + } + ] + }; + } + }); + + } + }, + handleClose(done) { + this.$confirm('确认关闭?') + .then(_ => { + done(); + }) + .catch(_ => { + }); + }, + addRuleItem(){ + this.formData.ruleItemList.push( + { + achieveType: 1, + calculationType: 1, + lower: '', + upper: '', + achieve: '', + } + ); + }, + removeRuleItem(index,row){ + this.formData.ruleItemList.splice(index, 1); + }, + + + } + + }); + + +</script> +</body> +</html> \ No newline at end of file -- Gitblit v1.9.1