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 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 118 insertions(+), 12 deletions(-)

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