From 69d6b370f8167046ed1e355b9bfb08020a6ef153 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 06 三月 2024 11:35:24 +0800
Subject: [PATCH] 违约规则完善
---
src/views/system/default-rule/index.vue | 130 +++++++++++++++++++++++++++++++++++++++----
src/api/platform/default-rule.js | 15 ++++-
2 files changed, 130 insertions(+), 15 deletions(-)
diff --git a/src/api/platform/default-rule.js b/src/api/platform/default-rule.js
index 1323364..e43c2de 100644
--- a/src/api/platform/default-rule.js
+++ b/src/api/platform/default-rule.js
@@ -1,11 +1,11 @@
import request from '@/utils/request'
// 鏌ヨ杩濈害瑙勫垯鍒楄〃
-export function listRule(query) {
+export function listRule(data) {
return request({
url: '/default-rule/page',
- method: 'get',
- params: query
+ method: 'post',
+ data: data
})
}
@@ -42,3 +42,12 @@
method: 'delete'
})
}
+
+// 鍚敤/鍋滅敤杩濈害瑙勫垯
+export function setRule(data) {
+ return request({
+ url: '/default-rule/set',
+ method: 'post',
+ data: data
+ })
+}
diff --git a/src/views/system/default-rule/index.vue b/src/views/system/default-rule/index.vue
index a6c6c00..1b26798 100644
--- a/src/views/system/default-rule/index.vue
+++ b/src/views/system/default-rule/index.vue
@@ -6,6 +6,7 @@
v-model="queryParams.ruleName"
placeholder="璇疯緭鍏ヨ鍒欏悕绉�"
clearable
+ @clear="handleQuery"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@@ -13,7 +14,7 @@
<el-date-picker
v-model="daterangeCreateTime"
style="width: 240px"
- value-format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
type="daterange"
range-separator="-"
start-placeholder="寮�濮嬫棩鏈�"
@@ -74,11 +75,9 @@
<el-table v-loading="loading" :data="ruleList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
- <el-table-column label="涓婚敭" align="center" prop="id" />
<el-table-column label="瑙勫垯鍚嶇О" align="center" prop="ruleName" />
- <el-table-column label="瑙勫垯璇︽儏JSON" align="center" prop="ruleDetail" />
<el-table-column label="瑙勫垯鎻忚堪" align="center" prop="ruleDesc" />
- <el-table-column label="瑙勫垯鐘舵�侊細鍚敤銆佹湭鍚敤" align="center" prop="ruleStatus" />
+ <el-table-column label="瑙勫垯鐘舵��" align="center" prop="ruleStatus" />
<el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
@@ -86,6 +85,29 @@
</el-table-column>
<el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
+ <el-button
+ v-if="scope.row.ruleStatus === '鏈惎鐢�'"
+ size="mini"
+ type="text"
+ icon="el-icon-zoom-in"
+ @click="handleUse(scope.row.id, true)"
+ v-hasPermi="['system:rule:use']"
+ >鍚敤</el-button>
+ <el-button
+ v-else
+ size="mini"
+ type="text"
+ icon="el-icon-zoom-in"
+ @click="handleUse(scope.row.id, false)"
+ v-hasPermi="['system:rule:use']"
+ >鍋滅敤</el-button>
+ <el-button
+ size="mini"
+ type="text"
+ icon="el-icon-zoom-in"
+ @click="handleDetail(scope.row)"
+ v-hasPermi="['system:rule:detail']"
+ >璇︽儏</el-button>
<el-button
size="mini"
type="text"
@@ -112,17 +134,53 @@
@pagination="getList"
/>
+ <!-- 瑙勫垯璇︽儏 -->
+ <el-dialog title="瑙勫垯璇︽儏" :visible.sync="detailOpen" width="500px" append-to-body>
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+ <el-form-item label="瑙勫垯鍚嶇О" prop="ruleName">
+ <el-input disabled v-model="form.ruleName" placeholder="璇疯緭鍏ヨ鍒欏悕绉�" />
+ </el-form-item>
+ <el-form-item label="瑙勫垯鎻忚堪" prop="ruleDesc">
+ <el-input disabled v-model="form.ruleDesc" placeholder="璇疯緭鍏ヨ鍒欐弿杩�" />
+ </el-form-item>
+ <el-form-item label="瑙勫垯璁剧疆">
+ <div style="margin-top: 30px">
+ <div class="line">
+ <div class="line-left">宸ュ崟鏈強鏃跺鐞嗘暟锛�</div>
+ <div class="line-right"><el-input disabled v-model="jsonRule.overTime" type="number"/></div>
+ </div>
+ <div class="line">
+ <div class="line-left">杩愮淮澶辫触鏁伴噺瓒呰繃锛�</div>
+ <div class="line-right"><el-input disabled v-model="jsonRule.failNum" type="number"/></div>
+ </div>
+ </div>
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="closeDetail">鍏抽棴</el-button>
+ </div>
+ </el-dialog>
+
<!-- 娣诲姞鎴栦慨鏀硅繚绾﹁鍒欏璇濇 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="瑙勫垯鍚嶇О" prop="ruleName">
<el-input v-model="form.ruleName" placeholder="璇疯緭鍏ヨ鍒欏悕绉�" />
</el-form-item>
- <el-form-item label="瑙勫垯璇︽儏JSON" prop="ruleDetail">
- <el-input v-model="form.ruleDetail" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�" />
- </el-form-item>
<el-form-item label="瑙勫垯鎻忚堪" prop="ruleDesc">
<el-input v-model="form.ruleDesc" placeholder="璇疯緭鍏ヨ鍒欐弿杩�" />
+ </el-form-item>
+ <el-form-item label="瑙勫垯璁剧疆">
+ <div style="margin-top: 30px">
+ <div class="line">
+ <div class="line-left">宸ュ崟鏈強鏃跺鐞嗘暟锛�</div>
+ <div class="line-right"><el-input v-model="jsonRule.overTime" type="number"/></div>
+ </div>
+ <div class="line">
+ <div class="line-left">杩愮淮澶辫触鏁伴噺瓒呰繃锛�</div>
+ <div class="line-right"><el-input v-model="jsonRule.failNum" type="number"/></div>
+ </div>
+ </div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -134,12 +192,13 @@
</template>
<script>
-import { listRule, getRule, delRule, addRule, updateRule } from "@/api/platform/default-rule";
+import { listRule, getRule, delRule, addRule, updateRule, setRule } from "@/api/platform/default-rule";
export default {
name: "Rule",
data() {
return {
+ detailOpen: false,
// 閬僵灞�
loading: true,
// 閫変腑鏁扮粍
@@ -170,6 +229,7 @@
},
// 琛ㄥ崟鍙傛暟
form: {},
+ jsonRule: {},
// 琛ㄥ崟鏍¢獙
rules: {
ruleName: [
@@ -185,13 +245,12 @@
/** 鏌ヨ杩濈害瑙勫垯鍒楄〃 */
getList() {
this.loading = true;
- this.queryParams.params = {};
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
- this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
- this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
+ this.queryParams["start"] = this.daterangeCreateTime[0];
+ this.queryParams["end"] = this.daterangeCreateTime[1];
}
listRule(this.queryParams).then(response => {
- this.ruleList = response.rows;
+ this.ruleList = response.data;
this.total = response.total;
this.loading = false;
});
@@ -244,6 +303,7 @@
const id = row.id || this.ids
getRule(id).then(response => {
this.form = response.data;
+ this.jsonRule = JSON.parse(this.form.ruleDetail)
this.open = true;
this.title = "淇敼杩濈害瑙勫垯";
});
@@ -252,6 +312,9 @@
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
+ this.jsonRule.overtime = this.jsonRule.overtime ? this.jsonRule.overtime : 0;
+ this.jsonRule.failNum = this.jsonRule.failNum ? this.jsonRule.failNum : 0;
+ this.form.ruleDetail = JSON.stringify(this.jsonRule);
if (this.form.id != null) {
updateRule(this.form).then(response => {
this.$modal.msgSuccess("淇敼鎴愬姛");
@@ -267,6 +330,33 @@
}
}
});
+ },
+ // 鍚敤銆佸仠鐢�
+ handleUse(id, flag) {
+ let data = {
+ id: id,
+ flag: flag
+ }
+ setRule(data).then(res => {
+ if (res.code === 200) {
+ this.$modal.msgSuccess("璁剧疆鎴愬姛");
+ } else {
+ this.$modal.msgError(res.msg);
+ }
+ this.getList();
+ })
+ },
+ // 璇︽儏鎸夐挳
+ handleDetail(row) {
+ this.detailOpen = true;
+ this.form = row;
+ this.jsonRule = JSON.parse(this.form.ruleDetail);
+ },
+ // 鍏抽棴璇︽儏
+ closeDetail() {
+ this.jsonRule = {};
+ this.form = {};
+ this.detailOpen = false;
},
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
@@ -287,3 +377,19 @@
}
};
</script>
+
+<style scoped>
+.line {
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: center;
+}
+.line-left {
+ width: 200px;
+ text-align: center;
+}
+.line-right {
+ width: 100px;
+}
+</style>
--
Gitblit v1.8.0