From 27c87cc797f4fc9b0744ed8c44b58dbe4ff3a63c Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期四, 21 三月 2024 18:01:56 +0800
Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/zgyw-ui

---
 src/views/system/calculate/duty/index.vue   |  263 +++++++
 src/views/system/calculate/order/index.vue  |  430 ++++++++---
 src/views/system/calculate/rule/index.vue   |  286 +++++++
 src/views/system/default-auditing/index.vue |  138 +++
 src/views/system/check-result/index.vue     |    4 
 src/views/system/data-manage/index.vue      |    4 
 src/api/platform/rules.js                   |   44 +
 src/views/system/calculate/record/index.vue |  450 ++++++++++++
 src/views/system/score/index.vue            |   91 +-
 src/views/system/calculate/report/index.vue |  441 ++++++++++++
 src/views/system/check-rule/index.vue       |    9 
 11 files changed, 2,000 insertions(+), 160 deletions(-)

diff --git a/src/api/platform/rules.js b/src/api/platform/rules.js
new file mode 100644
index 0000000..7ff7568
--- /dev/null
+++ b/src/api/platform/rules.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鏍哥畻瑙勫垯鍒楄〃
+export function listRules(query) {
+  return request({
+    url: '/platform/rules/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ヨ鏍哥畻瑙勫垯璇︾粏
+export function getRules(id) {
+  return request({
+    url: '/platform/rules/' + id,
+    method: 'get'
+  })
+}
+
+// 鏂板鏍哥畻瑙勫垯
+export function addRules(data) {
+  return request({
+    url: '/platform/rules',
+    method: 'post',
+    data: data
+  })
+}
+
+// 淇敼鏍哥畻瑙勫垯
+export function updateRules(data) {
+  return request({
+    url: '/platform/rules',
+    method: 'put',
+    data: data
+  })
+}
+
+// 鍒犻櫎鏍哥畻瑙勫垯
+export function delRules(id) {
+  return request({
+    url: '/platform/rules/' + id,
+    method: 'delete'
+  })
+}
diff --git a/src/views/system/calculate/duty/index.vue b/src/views/system/calculate/duty/index.vue
new file mode 100644
index 0000000..2ac514d
--- /dev/null
+++ b/src/views/system/calculate/duty/index.vue
@@ -0,0 +1,263 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="杩濈害鍚�" prop="examineId">
+        <el-input v-model="queryParams.examineId" placeholder="璇疯緭鍏ヨ繚绾﹀悕" clearable @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">鏂板</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
+          @click="handleUpdate">淇敼</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
+          @click="handleDelete">鍒犻櫎</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="scoreList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="杩濈害鍚�" align="center" prop="examineName" />
+      <el-table-column label="杩濈害瀵硅薄" align="center" prop="unitName" />
+      <el-table-column label="鍒嗗��" align="center" prop="score" />
+      <el-table-column label="杩濈害瑙勫垯" align="center" prop="scoreCategory">
+        <template slot-scope="scope">
+          <div v-if="scope.row.scoreCategory === 1">瑙嗛鍦ㄧ嚎鐜�</div>
+          <div v-else-if="scope.row.scoreCategory === 2">瀛樺偍鏁呴殰</div>
+          <div v-else-if="scope.row.scoreCategory === 4">涓�鏈轰竴妗�24灏忔椂鏈慨澶�</div>
+          <div v-else-if="scope.row.scoreCategory === 5">鏃堕挓涓嶅悓姝�24灏忔椂鏈慨澶�</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="鍒涘缓浜�" align="center" prop="createBy" />
+      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" />
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">淇敼</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
+
+    <!-- 娣诲姞鎴栦慨鏀硅繚绾﹁鍒嗗璇濇 -->
+    <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="score">
+          <el-input v-model="form.score" placeholder="璇疯緭鍏ュ垎鍊�" />
+        </el-form-item>
+        <el-form-item label="鍗曚綅鍚�" prop="unitId">
+          <el-select v-model="form.unitId" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in unitList" :key="item.id" :label="item.value" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="杩濈害鍚�" prop="examineId">
+          <el-select v-model="form.examineId" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in examineList" :key="item.id" :label="item.value" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="绉垎绫诲瀷" prop="scoreCategory">
+          <el-select v-model="form.scoreCategory" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in scoreCategoryList" :key="item.id" :label="item.value" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listScore, getScore, delScore, addScore, updateScore } from "@/api/platform/score";
+import { unitSelect } from "@/api/platform/unit";
+import { publishSelect } from "@/api/platform/publish";
+
+export default {
+  name: "Score",
+  dicts: ['platform_operate_category'],
+  data() {
+    return {
+      operateCategoryList: [
+        { id: 2, value: '浜哄伐鎵撳垎' },
+        { id: 1, value: '绯荤粺鎵撳垎' },
+      ],
+      scoreCategoryList: [
+        { id: 2, value: '瀛樺偍鏁呴殰' },
+        { id: 1, value: '瑙嗛鍦ㄧ嚎鐜�' },
+        { id: 3, value: '淇濋殰宸ヤ綔' },
+      ],
+
+      unitList: [],
+      examineList: [],
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 杩濈害璁″垎琛ㄦ牸鏁版嵁
+      scoreList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        score: null,
+        unitId: 2,
+        examineId: null,
+        operateCategory: null,
+        scoreCategory: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.selectUnit();
+    this.selectExamine();
+  },
+  methods: {
+    // 杩愮淮鍏徃涓嬫媺鏁版嵁
+    selectUnit() {
+      unitSelect().then(res => {
+        this.unitList = res.data;
+      })
+    },
+    // 杩濈害涓嬫媺鏁版嵁
+    selectExamine() {
+      publishSelect().then(res => {
+        this.examineList = res.data;
+      })
+    },
+    /** 鏌ヨ杩濈害璁″垎鍒楄〃 */
+    getList() {
+      this.loading = true;
+      listScore(this.queryParams).then(response => {
+        this.scoreList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        score: null,
+        unitId: null,
+        examineId: null,
+        operateCategory: null,
+        scoreCategory: null,
+        createTime: null,
+        createBy: null
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞杩濈害璁″垎";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getScore(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) {
+            updateScore(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addScore(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎杩濈害璁″垎缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function () {
+        return delScore(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => { });
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('platform/score/export', {
+        ...this.queryParams
+      }, `score_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
diff --git a/src/views/system/calculate/order/index.vue b/src/views/system/calculate/order/index.vue
index 7372335..155ebdc 100644
--- a/src/views/system/calculate/order/index.vue
+++ b/src/views/system/calculate/order/index.vue
@@ -1,8 +1,49 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="杩濈害鍚�" prop="examineId">
-        <el-input v-model="queryParams.examineId" placeholder="璇疯緭鍏ヨ繚绾﹀悕" clearable @keyup.enter.native="handleQuery" />
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="鑰冩牳瀵硅薄" prop="checkUnitId">
+        <el-input
+          v-model="queryParams.checkUnitName"
+          placeholder="璇疯緭鍏ヨ�冩牳瀵硅薄"
+          clearable
+          @clear="handleQuery"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鑰冩牳棰戠巼" prop="frequency">
+        <el-select v-model="queryParams.frequency" clearable @clear="handleQuery" placeholder="鑰冩牳棰戠巼">
+          <el-option
+            label="鏈堝害鑰冩牳"
+            value="1">
+          </el-option>
+          <el-option
+            label="瀛e害鑰冩牳"
+            value="2">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鑰冩牳鑼冨洿" prop="examineRange">
+        <el-select v-model="queryParams.examineRange" clearable  @clear="handleQuery" placeholder="鑰冩牳鑼冨洿">
+          <el-option
+            label="甯傚眬鑰冩牳"
+            value="2">
+          </el-option>
+          <el-option
+            label="鍒嗗眬鑰冩牳"
+            value="1">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鑰冩牳鏃堕棿">
+        <el-date-picker
+          v-model="daterangeCheckTime"
+          style="width: 240px"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="寮�濮嬫棩鏈�"
+          end-placeholder="缁撴潫鏃ユ湡"
+        ></el-date-picker>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
@@ -11,73 +52,164 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['system:checkResult:add']"-->
+<!--        >鏂板</el-button>-->
+<!--      </el-col>-->
       <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">鏂板</el-button>
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >鍒犻櫎</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
-          @click="handleUpdate">淇敼</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
-          @click="handleDelete">鍒犻櫎</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">瀵煎嚭</el-button>
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+        >瀵煎嚭</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table v-loading="loading" :data="scoreList" @selection-change="handleSelectionChange">
+    <el-card class="box-card" v-for="(item) in checkResultList">
+      <div slot="header" class="clearfix">
+        <span>{{ item.checkUnitName }}</span>
+        <el-button style="float: right; padding: 3px 0" type="text" @click="handleDetail(item)">璇︽儏</el-button>
+      </div>
+      <div class="text item">鑰冩牳<span class="time">{{ item.examineName }}</span></div>
+      <div class="text item">鑰冩牳棰戠巼<span class="time">{{ "瀛e害鑰冩牳" }}</span></div>
+      <div class="text item">鑰冩牳鍒嗘暟<span class="time">{{ item.checkScore }}</span></div>
+      <div class="text item">鑰冩牳鏃堕棿
+        <span class="time">{{ item.checkTime }}</span>
+      </div>
+    </el-card>
+
+    <!-- <el-table v-loading="loading" :data="checkResultList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="杩濈害鍚�" align="center" prop="examineName" />
-      <el-table-column label="杩濈害瀵硅薄" align="center" prop="unitName" />
-      <el-table-column label="鍒嗗��" align="center" prop="score" />
-      <el-table-column label="杩濈害瑙勫垯" align="center" prop="scoreCategory">
-        <template slot-scope="scope">
-          <div v-if="scope.row.scoreCategory === 1">瑙嗛鍦ㄧ嚎鐜�</div>
-          <div v-else-if="scope.row.scoreCategory === 2">瀛樺偍鏁呴殰</div>
-          <div v-else-if="scope.row.scoreCategory === 4">涓�鏈轰竴妗�24灏忔椂鏈慨澶�</div>
-          <div v-else-if="scope.row.scoreCategory === 5">鏃堕挓涓嶅悓姝�24灏忔椂鏈慨澶�</div>
-        </template>
-      </el-table-column>
-      <el-table-column label="鍒涘缓浜�" align="center" prop="createBy" />
-      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" />
+      <el-table-column label="鑰冩牳瀵硅薄" align="center" prop="checkUnitName" />
+      <el-table-column label="鑰冩牳" align="center" prop="examineName" />
+      <el-table-column label="鑰冩牳鑼冨洿":formatter="examineRangeFormatter" align="center" prop="examineRange" />
+      <el-table-column label="鑰冩牳棰戠巼" :formatter="frequencyFormatter" align="center" prop="frequency" />
+      <el-table-column label="鑰冩牳鍒嗘暟" falign="center" prop="checkScore" />
+      <el-table-column label="鑰冩牳鏃堕棿" align="center" prop="checkTime" />
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">淇敼</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleDetail(scope.row)"
+          >璇︽儏</el-button>
+         <el-button
+           type="text"
+           size="mini"
+           icon="el-icon-edit"
+           @click="handleSetManualScore(scope.row)"
+         >浜哄伐鎵撳垎</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >鍒犻櫎</el-button>
         </template>
       </el-table-column>
     </el-table>
 
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    /> -->
 
-    <!-- 娣诲姞鎴栦慨鏀硅繚绾﹁鍒嗗璇濇 -->
+    <el-dialog :title="manualScoreTitle" :visible.sync="manualScoreOpen" width="500px" append-to-body>
+      <el-input v-model="manualScoreForm.manualScore" type="number" placeholder="璇蜂负璇ュ崟浣嶆墦鍒�"/>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitManualScore">纭� 瀹�</el-button>
+        <el-button @click="cancelManualScore">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+
+    <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="700px" append-to-body>
+      <el-descriptions class="margin-top" :column="3" border>
+<!--        <template slot="extra">-->
+<!--          <el-button type="primary" size="small">鎿嶄綔</el-button>-->
+<!--        </template>-->
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-user"></i>
+            鑰冩牳瀵硅薄
+          </template>
+          {{detail.checkUnitName}}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-s-management"></i>
+            鑰冩牳鍚嶇О
+          </template>
+          {{detail.examineName}}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-full-screen"></i>
+            鑰冩牳鑼冨洿
+          </template>
+          <el-tag size="small">{{detail.examineRange === 1 ? '鍒嗗眬鑰冩牳' : '甯傚眬鑰冩牳'}}</el-tag>
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-timer"></i>
+            鑰冩牳棰戠巼
+          </template>
+          <el-tag size="small">{{detail.frequency === 1 ? '鏈堝害鑰冩牳' : '瀛e害鑰冩牳'}}</el-tag>
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-medal"></i>
+            缁煎悎鍒嗘暟
+          </template>
+          <el-tag type="danger" size="small">{{detail.checkScore}}</el-tag>
+        </el-descriptions-item>
+      </el-descriptions>
+        <el-table
+          :data="tableData"
+          show-summary
+          style="width: 100%">
+          <el-table-column
+            prop="name"
+            label="瑙勫垯鍚�"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="content"
+            label="鎸囨爣"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="score"
+            label="寰楀垎">
+          </el-table-column>
+        </el-table>
+    </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="score">
-          <el-input v-model="form.score" placeholder="璇疯緭鍏ュ垎鍊�" />
-        </el-form-item>
-        <el-form-item label="鍗曚綅鍚�" prop="unitId">
-          <el-select v-model="form.unitId" placeholder="璇烽�夋嫨">
-            <el-option v-for="item in unitList" :key="item.id" :label="item.value" :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="杩濈害鍚�" prop="examineId">
-          <el-select v-model="form.examineId" placeholder="璇烽�夋嫨">
-            <el-option v-for="item in examineList" :key="item.id" :label="item.value" :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="绉垎绫诲瀷" prop="scoreCategory">
-          <el-select v-model="form.scoreCategory" placeholder="璇烽�夋嫨">
-            <el-option v-for="item in scoreCategoryList" :key="item.id" :label="item.value" :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
@@ -88,27 +220,37 @@
 </template>
 
 <script>
-import { listScore, getScore, delScore, addScore, updateScore } from "@/api/platform/score";
-import { unitSelect } from "@/api/platform/unit";
-import { publishSelect } from "@/api/platform/publish";
+import { listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/check-result";
 
 export default {
-  name: "Score",
-  dicts: ['platform_operate_category'],
+  name: "CheckResult",
   data() {
     return {
-      operateCategoryList: [
-        { id: 2, value: '浜哄伐鎵撳垎' },
-        { id: 1, value: '绯荤粺鎵撳垎' },
-      ],
-      scoreCategoryList: [
-        { id: 2, value: '瀛樺偍鏁呴殰' },
-        { id: 1, value: '瑙嗛鍦ㄧ嚎鐜�' },
-        { id: 3, value: '淇濋殰宸ヤ綔' },
-      ],
+      detailTitle: '',
+      detailOpen: false,
+      detail:{
 
-      unitList: [],
-      examineList: [],
+      },
+      tableData: [{
+        name: '瑙嗛骞冲潎鍦ㄧ嚎鐜�',
+        content: '97%',
+        score: '-5'
+      }, {
+        name: '涓�鏈轰竴妗�24灏忔椂鏈慨澶�',
+        content: '5涓�',
+        score: '-0.5'
+      }, {
+        name: '瀛樺偍鏁呴殰',
+        content: '5灏忔椂',
+        score: '-0.3'
+      }, {
+        name: '鏃堕挓涓嶅悓姝�24灏忔椂鏈慨澶�',
+        content: '3涓�',
+        score: '-0.5'
+      }],
+      manualScoreOpen: false,
+      manualScoreForm: {},
+      manualScoreTitle: '',
       // 閬僵灞�
       loading: true,
       // 閫変腑鏁扮粍
@@ -121,21 +263,20 @@
       showSearch: true,
       // 鎬绘潯鏁�
       total: 0,
-      // 杩濈害璁″垎琛ㄦ牸鏁版嵁
-      scoreList: [],
+      // 鑰冩牳缁撴灉琛ㄦ牸鏁版嵁
+      checkResultList: [],
       // 寮瑰嚭灞傛爣棰�
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
+      // 閫昏緫鍒犻櫎鏃堕棿鑼冨洿
+      daterangeCheckTime: [],
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        score: null,
-        unitId: null,
-        examineId: null,
-        operateCategory: null,
-        scoreCategory: null,
+        checkUnitId: null,
+        checkTime: null,
       },
       // 琛ㄥ崟鍙傛暟
       form: {},
@@ -146,27 +287,33 @@
   },
   created() {
     this.getList();
-    this.selectUnit();
-    this.selectExamine();
   },
   methods: {
-    // 杩愮淮鍏徃涓嬫媺鏁版嵁
-    selectUnit() {
-      unitSelect().then(res => {
-        this.unitList = res.data;
-      })
+    frequencyFormatter(row) {
+      if (row.frequency === "1") {
+        return "鏈堝害鑰冩牳"
+      }
+      if (row.frequency === "2") {
+        return "瀛e害鑰冩牳"
+      }
     },
-    // 杩濈害涓嬫媺鏁版嵁
-    selectExamine() {
-      publishSelect().then(res => {
-        this.examineList = res.data;
-      })
+    examineRangeFormatter(row) {
+      if (row.examineRange === "1") {
+        return "鍒嗗眬鑰冩牳"
+      }
+      if (row.examineRange === "2") {
+        return "甯傚眬鑰冩牳"
+      }
     },
-    /** 鏌ヨ杩濈害璁″垎鍒楄〃 */
+    /** 鏌ヨ鑰冩牳缁撴灉鍒楄〃 */
     getList() {
       this.loading = true;
-      listScore(this.queryParams).then(response => {
-        this.scoreList = response.rows;
+      if (null != this.daterangeCheckTime && '' != this.daterangeCheckTime) {
+        this.queryParams["start"] = this.daterangeCheckTime[0];
+        this.queryParams["end"] = this.daterangeCheckTime[1];
+      }
+      listCheckResult(this.queryParams).then(response => {
+        this.checkResultList = response.data;
         this.total = response.total;
         this.loading = false;
       });
@@ -180,15 +327,57 @@
     reset() {
       this.form = {
         id: null,
-        score: null,
-        unitId: null,
-        examineId: null,
-        operateCategory: null,
-        scoreCategory: null,
+        checkUnitId: null,
+        checkPublishId: null,
+        checkScore: null,
+        systemScore: null,
+        manualScore: null,
+        checkTime: null,
         createTime: null,
-        createBy: null
+        updateTime: null,
+        deleted: null
       };
       this.resetForm("form");
+    },
+    cancelManualScore() {
+      this.manualScoreForm = {};
+      this.manualScoreTitle = "";
+      this.manualScoreOpen = false;
+    },
+    submitManualScore() {
+      if (! this.manualScoreForm.manualScore) {
+        this.$modal.msgWarning("璇峰~鍐欏垎鏁�");
+        return
+      }
+      manualScore(this.manualScoreForm).then(res => {
+        this.$modal.msgSuccess("鎿嶄綔鎴愬姛");
+        this.cancelManualScore();
+        this.getList();
+      })
+    },
+    handleSetManualScore(row) {
+      this.manualScoreForm.id = row.id;
+      this.manualScoreForm.manualScore = parseInt(row.manualScore);
+      this.manualScoreTitle = row.checkUnitName + '浜哄伐鎵撳垎'
+      this.manualScoreOpen = true;
+    },
+    handleDetail(row) {
+      this.detail = row;
+      this.detail.carOnlineRate =  '97%';
+      this.detailTitle = row.checkUnitName + '鑰冩牳缁撴灉';
+      this.detailOpen = true;
+
+    },
+    handlePublish(row) {
+      let text = row.publish == 1 ? '鍙栨秷鍙戝竷' : '鍙戝竷';
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭' + text + '鑰冩牳缁撴灉缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return publishCheckResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess(text + "鎴愬姛");
+      }).catch(() => {});
+
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
@@ -197,29 +386,30 @@
     },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
+      this.daterangeCheckTime = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length !== 1
+      this.single = selection.length!==1
       this.multiple = !selection.length
     },
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "娣诲姞杩濈害璁″垎";
+      this.title = "娣诲姞鑰冩牳缁撴灉";
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
       const id = row.id || this.ids
-      getScore(id).then(response => {
+      getCheckResult(id).then(response => {
         this.form = response.data;
         this.open = true;
-        this.title = "淇敼杩濈害璁″垎";
+        this.title = "淇敼鑰冩牳缁撴灉";
       });
     },
     /** 鎻愪氦鎸夐挳 */
@@ -227,13 +417,13 @@
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
-            updateScore(this.form).then(response => {
+            updateCheckResult(this.form).then(response => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
               this.open = false;
               this.getList();
             });
           } else {
-            addScore(this.form).then(response => {
+            addCheckResult(this.form).then(response => {
               this.$modal.msgSuccess("鏂板鎴愬姛");
               this.open = false;
               this.getList();
@@ -245,19 +435,43 @@
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal.confirm('鏄惁纭鍒犻櫎杩濈害璁″垎缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function () {
-        return delScore(ids);
+      this.$modal.confirm('鏄惁纭鍒犻櫎鑰冩牳缁撴灉缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delCheckResult(ids);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => { });
+      }).catch(() => {});
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      this.download('platform/score/export', {
+      this.download('system/checkResult/export', {
         ...this.queryParams
-      }, `score_${new Date().getTime()}.xlsx`)
+      }, `checkResult_${new Date().getTime()}.xlsx`)
     }
   }
 };
 </script>
+<style>
+  .text {
+    font-size: 14px;
+  }
+  .time {
+    font-size: 13px;
+    color: #999;
+    margin-left: 10px;
+  }
+  .item {
+    margin-bottom: 18px;
+  }
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+  .box-card {
+    width: 480px;
+  }
+</style>
diff --git a/src/views/system/calculate/record/index.vue b/src/views/system/calculate/record/index.vue
new file mode 100644
index 0000000..1c8e04b
--- /dev/null
+++ b/src/views/system/calculate/record/index.vue
@@ -0,0 +1,450 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="鏍哥畻瑙勫垯" prop="ruleName">
+        <el-input
+          v-model="queryParams.ruleName"
+          placeholder="璇疯緭鍏ヨ鍒欏悕绉�"
+          clearable
+          @clear="handleQuery"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鍒涘缓鏃堕棿" prop="createTime">
+        <el-date-picker
+          v-model="daterangeCreateTime"
+          style="width: 240px"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="寮�濮嬫棩鏈�"
+          end-placeholder="缁撴潫鏃ユ湡"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >淇敼</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >鍒犻櫎</el-button>
+      </el-col>
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="warning"-->
+<!--          plain-->
+<!--          icon="el-icon-download"-->
+<!--          size="mini"-->
+<!--          @click="handleExport"-->
+<!--          v-hasPermi="['system:checkRule:export']"-->
+<!--        >瀵煎嚭</el-button>-->
+<!--      </el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="checkRuleList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="鏍哥畻瑙勫垯" align="center" prop="ruleName" />
+      <el-table-column label="鏍哥畻瀵硅薄" align="center" prop="category">
+        <template slot-scope="scope">
+        <div v-if="scope.row.category === 1">瑙嗛鐩戞帶</div>
+        <div v-else-if="scope.row.category === 2">杞﹁締璇嗗埆</div>
+        <div v-else-if="scope.row.category === 3">浜鸿劯璇嗗埆</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="鍚堝悓鍚�" align="center" prop="ruleDetail" />
+      <el-table-column label="閲戦" align="center" prop="ruleDetail" />
+      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" />
+
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-s-check"
+              @click="handleAudit(scope.row)"
+              v-hasPermi="['check:rule:audit']"
+            >瀹℃牳</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+            >淇敼</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+            >鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+       </el-table>
+
+          <pagination
+            v-show="total>0"
+            :total="total"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+  <div>
+    <!-- 娣诲姞鎴栦慨鏀硅�冩牳瑙勫垯瀵硅瘽妗� -->
+    <el-dialog :title="title" :visible.sync="open" width="600px" 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="瑙勫垯绫诲瀷" prop="category">
+          <el-select v-model="form.category" placeholder="瑙勫垯绫诲瀷">
+            <el-option
+              v-for="item in categoryList"
+              :key="item.id"
+              :label="item.value"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="瑙勫垯鎻忚堪" prop="ruleDetail">
+          <el-input v-model="form.ruleDetail" type="textarea" show-word-limit maxlength="150" placeholder="璇疯緭鍏ヨ鍒欐弿杩�"/>
+        </el-form-item>
+        <el-form-item label="鍙傛暟閰嶇疆" prop="ruleDetail">
+          <div class="row-warp">
+            <div class="row">
+              <div class="row-left">鍙傛暟鍚�</div>
+              <div class="row-right">鏉′欢</div>
+            </div>
+            <div class="row">
+              <div class="row-left">澶╃綉瑙嗛鐐逛綅鏁�</div>
+              <div class="row-right">
+                <div>涓嶅皯浜�</div>
+                <div>
+                  <el-input class="input-w" type="number" v-model="form.videoPointNum"/>{{" %"}}
+                </div>
+              </div>
+            </div>
+            <div class="row">
+              <div class="row-left">杞﹁締鍗″彛鐐逛綅鏁�</div>
+              <div class="row-right">
+                <div>涓嶅皯浜�</div>
+                <div><el-input class="input-w" type="number" v-model="form.vehicleCheckpointNum"/></div>{{" %"}}
+              </div>
+            </div>
+            <div class="row">
+              <div class="row-left">浜鸿劯鍗″彛鐐逛綅鏁�</div>
+              <div class="row-right">
+                <div>涓嶅皯浜�</div>
+                <div>
+                  <el-input class="input-w" type="number" v-model="form.faceChceckpointNum" /></div>{{" %"}}
+                </div>
+            </div>
+          </div>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+
+  <!-- 瀹℃牳鑰冩牳瑙勫垯瀵硅瘽妗� -->
+  <el-dialog :title="title" :visible.sync="auditOpen" width="600px" 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="璇疯緭鍏ヨ鍒欏悕绉�" disabled/>
+      </el-form-item>
+      <el-form-item label="瑙勫垯绫诲瀷" prop="category">
+        <el-select v-model="form.category" placeholder="瑙勫垯绫诲瀷" disabled>
+          <el-option
+            v-for="item in categoryList"
+            :key="item.id"
+            :label="item.value"
+            :value="item.id">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="瑙勫垯鎻忚堪" prop="ruleDetail">
+        <el-input v-model="form.ruleDetail" type="textarea" show-word-limit maxlength="150" placeholder="璇疯緭鍏ヨ鍒欐弿杩�" disabled/>
+      </el-form-item>
+      <el-form-item label="鍙傛暟閰嶇疆" prop="ruleDetail" disabled>
+        <div class="row-warp">
+          <div class="row">
+            <div class="row-left">鍙傛暟鍚�</div>
+            <div class="row-right">鏉′欢</div>
+          </div>
+          <div class="row">
+            <div class="row-left">澶╃綉瑙嗛鐐逛綅鏁�</div>
+            <div class="row-right">
+              <div>涓嶅皯浜�</div>
+              <div>
+                <el-input class="input-w" type="number" v-model="form.videoPointNum" disabled/>
+              </div>
+            </div>
+          </div>
+          <div class="row">
+            <div class="row-left">杞﹁締鍗″彛鐐逛綅鏁�</div>
+            <div class="row-right">
+              <div>涓嶅皯浜�</div>
+              <div><el-input class="input-w" type="number" v-model="form.vehicleCheckpointNum" disabled/></div>
+            </div>
+          </div>
+          <div class="row">
+            <div class="row-left">浜鸿劯鍗″彛鐐逛綅鏁�</div>
+            <div class="row-right">
+              <div>涓嶅皯浜�</div>
+              <div>
+                <el-input class="input-w" type="number" v-model="form.faceChceckpointNum" disabled/></div>
+            </div>
+          </div>
+        </div>
+      </el-form-item>
+      <el-form-item label="瀹℃牳缁撴灉" prop="auditState" >
+        <el-radio-group v-model="form.auditState">
+        <el-radio :label="1">閫氳繃</el-radio>
+        <el-radio :label="2">椹冲洖</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="瀹℃牳璇存槑" prop="auditDescription" >
+        <el-input v-model="form.auditDescription" type="textarea" show-word-limit maxlength="100" />
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+      <el-button @click="cancel">鍙� 娑�</el-button>
+    </div>
+  </el-dialog>
+
+  </div>
+</template>
+
+<script>
+import { listCheckRule, getCheckRule, delCheckRule, addCheckRule, updateCheckRule } from "@/api/platform/check-rule";
+
+export default {
+  name: "CheckRule",
+  dicts: ['platform_audit_state'],
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 杩愮淮绫诲瀷
+      categoryList: [
+        { id: 1, value: '瑙嗛鐩戞帶' },
+        { id: 2, value: '杞﹁締璇嗗埆' },
+        { id: 3, value: '浜鸿劯璇嗗埆' },
+      ],
+      // 鑰冩牳瑙勫垯琛ㄦ牸鏁版嵁
+      checkRuleList: [],
+      daterangeCreateTime: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      auditOpen: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        ruleName: null,
+        createTime: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        ruleName: [
+          { required: true, message: "瑙勫垯鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 鏌ヨ鑰冩牳瑙勫垯鍒楄〃 */
+    getList() {
+      this.loading = true;
+      if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
+        this.queryParams["start"] = this.daterangeCreateTime[0];
+        this.queryParams["end"] = this.daterangeCreateTime[1];
+      }
+      listCheckRule(this.queryParams).then(response => {
+        this.checkRuleList = response.data;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.auditOpen = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        ruleName: null,
+        ruleDetail: null,
+        videoPointNum: null,
+        vehicleCheckpointNum: null,
+        faceChceckpointNum: null,
+        createTime: null,
+        updateTime: null,
+        deleted: null
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鑰冩牳瑙勫垯";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getCheckRule(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "淇敼鑰冩牳瑙勫垯";
+
+      });
+    },
+    /** 瀹℃牳鎸夐挳鎿嶄綔 */
+    handleAudit(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getCheckRule(id).then(response => {
+        this.form = response.data;
+        this.auditOpen = true;
+        this.title = "瀹℃牳鑰冩牳瑙勫垯";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateCheckRule(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.auditOpen = false;
+              this.getList();
+            });
+          } else {
+            addCheckRule(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.auditOpen = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鑰冩牳瑙勫垯缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delCheckRule(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('system/checkRule/export', {
+        ...this.queryParams
+      }, `checkRule_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
+
+<style scoped>
+.input-w {
+  margin-left: 5px;
+  width: 70px;
+}
+.row-warp {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  text-align: center;
+  border: solid 1px gray;
+  /*padding: 3px;*/
+}
+.row {
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  align-items: center;
+  border-bottom: solid 1px gray;
+  padding: 3px;
+}
+.row:last-of-type {
+  border-bottom: none;
+}
+.row-left {
+  flex: 2;
+  border-right: solid 1px gray;
+}
+.row-right {
+  flex: 4;
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+}
+</style>
diff --git a/src/views/system/calculate/report/index.vue b/src/views/system/calculate/report/index.vue
new file mode 100644
index 0000000..1bda10d
--- /dev/null
+++ b/src/views/system/calculate/report/index.vue
@@ -0,0 +1,441 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
+      <el-form-item label="鏍哥畻瀵硅薄" prop="checkUnitId">
+        <el-input
+          v-model="queryParams.checkUnitName"
+          placeholder="璇疯緭鍏ユ牳绠楀璞�"
+          clearable
+          @clear="handleQuery"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+
+      <el-form-item label="鏍哥畻鏃堕棿">
+        <el-date-picker
+          v-model="daterangeCheckTime"
+          style="width: 240px"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="寮�濮嬫棩鏈�"
+          end-placeholder="缁撴潫鏃ユ湡"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+<!--      <el-col :span="1.5">-->
+<!--        <el-button-->
+<!--          type="primary"-->
+<!--          plain-->
+<!--          icon="el-icon-plus"-->
+<!--          size="mini"-->
+<!--          @click="handleAdd"-->
+<!--          v-hasPermi="['system:checkResult:add']"-->
+<!--        >鏂板</el-button>-->
+<!--      </el-col>-->
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >鍒犻櫎</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+        >瀵煎嚭</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-card class="box-card" v-for="(item) in checkResultList">
+      <div slot="header" class="clearfix">
+        <span>{{ item.checkUnitName }}</span>
+        <el-button style="float: right; padding: 3px 0" type="text" @click="handleDetail(item)">璇︽儏</el-button>
+      </div>
+      <div class="text item">鍚堝悓<span class="time">{{ item.checkUnitName }}</span></div>
+      <div class="text item">鏍哥畻閲戦<span class="time">{{ "40090" }}</span></div>
+      <div class="text item">鑰冩牳鍒嗘暟<span class="time">{{ item.checkScore }}</span></div>
+      <div class="text item">鏍哥畻鏃堕棿
+        <span class="time">{{ item.checkTime }}</span>
+      </div>
+    </el-card>
+
+    <!-- <el-table v-loading="loading" :data="checkResultList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="鑰冩牳瀵硅薄" align="center" prop="checkUnitName" />
+      <el-table-column label="鑰冩牳" align="center" prop="examineName" />
+      <el-table-column label="鑰冩牳鑼冨洿":formatter="examineRangeFormatter" align="center" prop="examineRange" />
+      <el-table-column label="鑰冩牳棰戠巼" :formatter="frequencyFormatter" align="center" prop="frequency" />
+      <el-table-column label="鑰冩牳鍒嗘暟" falign="center" prop="checkScore" />
+      <el-table-column label="鑰冩牳鏃堕棿" align="center" prop="checkTime" />
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleDetail(scope.row)"
+          >璇︽儏</el-button>
+         <el-button
+           type="text"
+           size="mini"
+           icon="el-icon-edit"
+           @click="handleSetManualScore(scope.row)"
+         >浜哄伐鎵撳垎</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >鍒犻櫎</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    /> -->
+
+    <el-dialog :title="manualScoreTitle" :visible.sync="manualScoreOpen" width="500px" append-to-body>
+      <el-input v-model="manualScoreForm.manualScore" type="number" placeholder="璇蜂负璇ュ崟浣嶆墦鍒�"/>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitManualScore">纭� 瀹�</el-button>
+        <el-button @click="cancelManualScore">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+
+    <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="700px" append-to-body>
+      <el-descriptions class="margin-top" :column="3" border>
+<!--        <template slot="extra">-->
+<!--          <el-button type="primary" size="small">鎿嶄綔</el-button>-->
+<!--        </template>-->
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-user"></i>
+            鏍哥畻瀵硅薄
+          </template>
+          {{detail.checkUnitName}}
+        </el-descriptions-item>
+        <el-descriptions-item>
+          <template slot="label">
+            <i class="el-icon-s-management"></i>
+            鍚堝悓鍚嶇О
+          </template>
+          {{detail.checkUnitName}}
+        </el-descriptions-item>
+      </el-descriptions>
+        <el-table
+          :data="tableData"
+          show-summary
+          style="width: 100%">
+          <el-table-column
+            prop="name"
+            label="瑙勫垯鍚�"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="amount"
+            label="鏁伴噺"
+            width="180">
+          </el-table-column>
+          <el-table-column
+            prop="money"
+            label="閲戦(鍏�)">
+          </el-table-column>
+          <el-table-column
+            prop="total"
+            label="鍚堣(鍏�)">
+          </el-table-column>
+        </el-table>
+    </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>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/check-result";
+
+export default {
+  name: "CheckResult",
+  data() {
+    return {
+      detailTitle: '',
+      detailOpen: false,
+      detail:{
+
+      },
+      tableData: [{
+        name: '鎷嗛櫎鐐逛綅',
+        amount: '100',
+        money: '100',
+        total: '10000'
+      }, {
+        name: '杩炵画涓ゅぉ',
+        amount: '100',
+        money: '100.45',
+        total: '10045'
+      }, {
+        name: '闂撮殧涓夊ぉ',
+        amount: '100',
+        money: '100',
+        total: '10000'
+      }, {
+        name: '杩愯鐜�(96%)',
+        amount: '100',
+        money: '100.45',
+        total: '10045'
+      }],
+      manualScoreOpen: false,
+      manualScoreForm: {},
+      manualScoreTitle: '',
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鑰冩牳缁撴灉琛ㄦ牸鏁版嵁
+      checkResultList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 閫昏緫鍒犻櫎鏃堕棿鑼冨洿
+      daterangeCheckTime: [],
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        checkUnitId: null,
+        checkTime: null,
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    frequencyFormatter(row) {
+      if (row.frequency === "1") {
+        return "鏈堝害鑰冩牳"
+      }
+      if (row.frequency === "2") {
+        return "瀛e害鑰冩牳"
+      }
+    },
+    examineRangeFormatter(row) {
+      if (row.examineRange === "1") {
+        return "鍒嗗眬鑰冩牳"
+      }
+      if (row.examineRange === "2") {
+        return "甯傚眬鑰冩牳"
+      }
+    },
+    /** 鏌ヨ鑰冩牳缁撴灉鍒楄〃 */
+    getList() {
+      this.loading = true;
+      if (null != this.daterangeCheckTime && '' != this.daterangeCheckTime) {
+        this.queryParams["start"] = this.daterangeCheckTime[0];
+        this.queryParams["end"] = this.daterangeCheckTime[1];
+      }
+      listCheckResult(this.queryParams).then(response => {
+        this.checkResultList = response.data;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        checkUnitId: null,
+        checkPublishId: null,
+        checkScore: null,
+        systemScore: null,
+        manualScore: null,
+        checkTime: null,
+        createTime: null,
+        updateTime: null,
+        deleted: null
+      };
+      this.resetForm("form");
+    },
+    cancelManualScore() {
+      this.manualScoreForm = {};
+      this.manualScoreTitle = "";
+      this.manualScoreOpen = false;
+    },
+    submitManualScore() {
+      if (! this.manualScoreForm.manualScore) {
+        this.$modal.msgWarning("璇峰~鍐欏垎鏁�");
+        return
+      }
+      manualScore(this.manualScoreForm).then(res => {
+        this.$modal.msgSuccess("鎿嶄綔鎴愬姛");
+        this.cancelManualScore();
+        this.getList();
+      })
+    },
+    handleSetManualScore(row) {
+      this.manualScoreForm.id = row.id;
+      this.manualScoreForm.manualScore = parseInt(row.manualScore);
+      this.manualScoreTitle = row.checkUnitName + '浜哄伐鎵撳垎'
+      this.manualScoreOpen = true;
+    },
+    handleDetail(row) {
+      this.detail = row;
+      this.detail.carOnlineRate =  '97%';
+      this.detailTitle = row.checkUnitName + '鑰冩牳缁撴灉';
+      this.detailOpen = true;
+
+    },
+    handlePublish(row) {
+      let text = row.publish == 1 ? '鍙栨秷鍙戝竷' : '鍙戝竷';
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭' + text + '鑰冩牳缁撴灉缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return publishCheckResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess(text + "鎴愬姛");
+      }).catch(() => {});
+
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.daterangeCheckTime = [];
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "娣诲姞鑰冩牳缁撴灉";
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getCheckResult(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) {
+            updateCheckResult(this.form).then(response => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addCheckResult(this.form).then(response => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('鏄惁纭鍒犻櫎鑰冩牳缁撴灉缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delCheckResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+      }).catch(() => {});
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('system/checkResult/export', {
+        ...this.queryParams
+      }, `checkResult_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>
+<style>
+  .text {
+    font-size: 14px;
+  }
+  .time {
+    font-size: 13px;
+    color: #999;
+    margin-left: 10px;
+  }
+  .item {
+    margin-bottom: 18px;
+  }
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+  .box-card {
+    width: 480px;
+  }
+</style>
diff --git a/src/views/system/calculate/rule/index.vue b/src/views/system/calculate/rule/index.vue
new file mode 100644
index 0000000..ccc20e1
--- /dev/null
+++ b/src/views/system/calculate/rule/index.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="瑙勫垯鍚嶇О" prop="rulesName">
+        <el-input
+          v-model="queryParams.rulesName"
+          placeholder="璇疯緭鍏ヨ鍒欏悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="鍚堝悓鍚嶇О" prop="contractName">
+        <el-input
+          v-model="queryParams.contractName"
+          placeholder="璇疯緭鍏ュ悎鍚屽悕绉�"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="閫昏緫鍒犻櫎" prop="deleted">
+        <el-input
+          v-model="queryParams.deleted"
+          placeholder="璇疯緭鍏ラ�昏緫鍒犻櫎"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['platform:rules:add']"
+        >鏂板
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['platform:rules:edit']"
+        >淇敼
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['platform:rules:remove']"
+        >鍒犻櫎
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['platform:rules:export']"
+        >瀵煎嚭
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="rulesList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="瑙勫垯鍚嶇О" align="center" prop="rulesName"/>
+      <el-table-column label="鍚堝悓鍚嶇О" align="center" prop="contractName"/>
+      <el-table-column label="閲戦" align="center" prop="amount"/>
+      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['platform:rules:edit']"
+          >淇敼
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['platform:rules:remove']"
+          >鍒犻櫎
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 娣诲姞鎴栦慨鏀规牳绠楄鍒欏璇濇 -->
+    <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="rulesName">
+          <el-input v-model="form.rulesName" placeholder="璇疯緭鍏ヨ鍒欏悕绉�"/>
+        </el-form-item>
+        <el-form-item label="鍚堝悓鍚嶇О" prop="contractName">
+          <el-input v-model="form.contractName" placeholder="璇疯緭鍏ュ悎鍚屽悕绉�"/>
+        </el-form-item>
+        <el-form-item label="閲戦" prop="amount">
+          <el-input v-model="form.amount" placeholder="璇疯緭鍏ラ噾棰�"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listRules, getRules, delRules, addRules, updateRules } from '@/api/platform/rules'
+
+export default {
+  name: 'Rules',
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鏍哥畻瑙勫垯琛ㄦ牸鏁版嵁
+      rulesList: [],
+      // 寮瑰嚭灞傛爣棰�
+      title: '',
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        rulesName: null,
+        contractName: null,
+        deleted: null
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {}
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 鏌ヨ鏍哥畻瑙勫垯鍒楄〃 */
+    getList() {
+      this.loading = true
+      listRules(this.queryParams).then(response => {
+        this.rulesList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        id: null,
+        rulesName: null,
+        contractName: null,
+        amount: null,
+        createTime: null,
+        updateTime: null,
+        deleted: null
+      }
+      this.resetForm('form')
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.resetForm('queryForm')
+      this.handleQuery()
+    },
+    // 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset()
+      this.open = true
+      this.title = '娣诲姞鏍哥畻瑙勫垯'
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate(row) {
+      this.reset()
+      const id = row.id || this.ids
+      getRules(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) {
+            updateRules(this.form).then(response => {
+              this.$modal.msgSuccess('淇敼鎴愬姛')
+              this.open = false
+              this.getList()
+            })
+          } else {
+            addRules(this.form).then(response => {
+              this.$modal.msgSuccess('鏂板鎴愬姛')
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids
+      this.$modal.confirm('鏄惁纭鍒犻櫎鏍哥畻瑙勫垯缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() {
+        return delRules(ids)
+      }).then(() => {
+        this.getList()
+        this.$modal.msgSuccess('鍒犻櫎鎴愬姛')
+      }).catch(() => {
+      })
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.download('platform/rules/export', {
+        ...this.queryParams
+      }, `rules_${new Date().getTime()}.xlsx`)
+    }
+  }
+}
+</script>
diff --git a/src/views/system/check-result/index.vue b/src/views/system/check-result/index.vue
index 536bd3a..9f63175 100644
--- a/src/views/system/check-result/index.vue
+++ b/src/views/system/check-result/index.vue
@@ -244,11 +244,11 @@
       }, {
         name: '瀛樺偍鏁呴殰',
         content: '5灏忔椂',
-        score: '-0.5'
+        score: '-0.3'
       }, {
         name: '鏃堕挓涓嶅悓姝�24灏忔椂鏈慨澶�',
         content: '3涓�',
-        score: '-0.3'
+        score: '-0.5'
       }],
       manualScoreOpen: false,
       manualScoreForm: {},
diff --git a/src/views/system/check-rule/index.vue b/src/views/system/check-rule/index.vue
index b813712..96190cd 100644
--- a/src/views/system/check-rule/index.vue
+++ b/src/views/system/check-rule/index.vue
@@ -30,15 +30,6 @@
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
           type="success"
           plain
           icon="el-icon-edit"
diff --git a/src/views/system/data-manage/index.vue b/src/views/system/data-manage/index.vue
index f0228ea..727e39f 100644
--- a/src/views/system/data-manage/index.vue
+++ b/src/views/system/data-manage/index.vue
@@ -114,7 +114,7 @@
         { name: '', icon: 'el-icon-connection', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }
       ],
       carData: [
-        { name: '瑙嗗浘搴撳鎺ョǔ瀹氭��1', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+        { name: '瑙嗗浘搴撳鎺ョǔ瀹氭��', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
         { name: '鐐逛綅鍦ㄧ嚎鐜�', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
         { name: '鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
         { name: '杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
@@ -124,7 +124,7 @@
       carData2: [
         { name: '杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
         { name: '杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
-        { name: '杞﹁締鍗″彛璁惧url鍙敤鎬�0.5', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
+        { name: '杞﹁締鍗″彛璁惧url鍙敤鎬�', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
         { name: '杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬�', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
         { name: '', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' },
         { name: '', icon: 'el-icon-truck', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }
diff --git a/src/views/system/default-auditing/index.vue b/src/views/system/default-auditing/index.vue
index 6d65f7b..1b035f0 100644
--- a/src/views/system/default-auditing/index.vue
+++ b/src/views/system/default-auditing/index.vue
@@ -86,8 +86,14 @@
     <el-table v-loading="loading" :data="auditingList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="杩濈害鍗曚綅" align="center" prop="unitName" width="180"/>
-      <el-table-column label="杩濈害瑙勫垯" align="center" prop="defaultRuleName"width="120" />
-      <el-table-column label="杩濈害鎵e垎" align="center" prop="score"width="120" />
+      <el-table-column label="鑰冩牳鍚�" align="center" prop="checkPublishId" width="180">
+        <template slot-scope="scope">
+          <div v-if="scope.row.checkPublishId === 5">瑙嗛鑰冩牳</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="杩濈害瑙勫垯" align="center" prop="defaultRuleName" width="180" />
+      <el-table-column label="杩濈害鎵e垎" align="center" prop="score" width="120" />
+      <el-table-column label="鍒涘缓浜�" align="center" prop="createBy" />
       <el-table-column label="瀹℃牳浜�" align="center" prop="auditingUserName" />
       <el-table-column label="瀹℃牳鐘舵��" align="center" prop="auditingStatus" />
       <el-table-column label="瀹℃牳璇存槑" align="center" prop="remark" width="180"/>
@@ -100,6 +106,7 @@
             type="text"
             icon="el-icon-s-check"
             @click="handleAuditing(scope.row)"
+            v-hasPermi="['default:audit']"
           >瀹℃牳</el-button>
 <!--          <el-button-->
 <!--            size="mini"-->
@@ -132,6 +139,7 @@
         <el-form-item label="杩濈害鍗曚綅">
           <el-input v-model="auditingForm.unitName" disabled/>
         </el-form-item>
+
         <el-form-item label="杩濈害瑙勫垯">
           <el-input v-model="auditingForm.defaultRuleName" disabled/>
         </el-form-item>
@@ -151,6 +159,68 @@
         <el-button @click="closeAuditing">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+
+    <!-- 鏂板鎴栦慨鏀� -->
+    <el-dialog title="杩濈害瀹℃牳" :visible.sync="open" width="700px"append-to-body>
+      <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
+        <el-form-item label="杩濈害鍗曚綅" prop="unitName">
+          <el-select v-model="form.unitNameList" placeholder="杩濈害鍗曚綅">
+            <el-option
+              v-for="item in unitNameList"
+              :key="item.id"
+              :label="item.value"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鑰冩牳鍚�" prop="examineId">
+          <el-select v-model="form.examineId" placeholder="鑰冩牳鍚�" >
+            <el-option
+              v-for="item in examineList"
+              :key="item.id"
+              :label="item.value"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="杩濈害瑙勫垯" prop="tempRuleFormList">
+          <div class="row-warp">
+            <div class="row" v-for="(form) in tempRuleFormList">
+              <div class="row-left">
+                <div>瑙勫垯</div>
+                <div class="block">
+                  <span class="demonstration"></span>
+                  <el-cascader
+                    v-model="value"
+                    :options="options"
+                    :props = "props"
+                    @change="handleChange"></el-cascader>
+                </div>
+              </div>
+              <div class="row-right">
+                <div>鏁伴噺</div>
+                <div class="margin-5">
+                  <el-input type="number" v-model="form.weight"/>
+                </div>
+              </div>
+              <div class="item-op">
+                <el-button @click="removeRule(form)" type="danger" icon="el-icon-delete" circle></el-button>
+              </div>
+            </div>
+            <div style="margin-top: 25px">
+              <el-button type="success" @click="nextAdd" size="mini" plain>娣诲姞</el-button>
+            </div>
+          </div>
+        </el-form-item>
+        <el-form-item label="杩濈害鎵e垎"  style="width: 20%">
+          <el-input v-model="auditingForm.score"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitAuditing">纭� 瀹�</el-button>
+        <el-button @click="cancel">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -162,9 +232,37 @@
   name: "Auditing",
   data() {
     return {
+      options: [{
+        value: 'city',
+        label: '鍓嶇鎰熺煡婧愭不鐞嗗伐浣�',
+        children: [{
+          value: 'fushun',
+          label: '鏃堕挓鍚屾',
+        }, {
+          value: 'rong',
+          label: 'OSD鏍囪瘑鏈慨澶�',
+        }, {
+          value: 'rong',
+          label: '涓�鏈轰竴妗d笉鍚堟牸',
+        }
+        ]
+      },
+      ],
       auditingOpen: false,
       auditingForm: {},
       unitList: [],
+      unitNameList: [
+        {id:2 , value:"鎴愰兘x杩愮淮"}
+        ],
+      // 鑰冩牳妯℃澘
+      examineList: [
+        {id:1 , value:"杞﹁締鑰冩牳"},
+        {id:2 , value:"瑙嗛鑰冩牳"}
+      ],
+      // 涓存椂瑙勫垯琛ㄥ崟
+      tempRuleForm: {},
+      // 涓存椂瑙勫垯琛ㄥ崟鍒楄〃
+      tempRuleFormList: [{"ruleId": null, "adjustCoefficient": null}],
       // 閬僵灞�
       loading: true,
       // 閫変腑鏁扮粍
@@ -183,6 +281,7 @@
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
+      auditOpen: false,
       // 閫昏緫鍒犻櫎鏃堕棿鑼冨洿
       daterangeAuditingTime: [],
       // 閫昏緫鍒犻櫎鏃堕棿鑼冨洿
@@ -212,6 +311,9 @@
     this.getUnitSelect();
   },
   methods: {
+    handleChange(value) {
+      console.log(value);
+    },
     // 鎻愪氦瀹℃牳
     submitAuditing() {
       this.$refs["auditingForm"].validate(valid => {
@@ -239,6 +341,8 @@
       this.auditingForm = {};
       this.auditingOpen = false;
     },
+
+
     getUnitSelect() {
       // 杩愮淮鍗曚綅涓嬫媺鍒楄〃
       unitSelect().then((res) => {
@@ -265,6 +369,7 @@
     // 鍙栨秷鎸夐挳
     cancel() {
       this.open = false;
+      this.auditOpen = false;
       this.reset();
     },
     // 琛ㄥ崟閲嶇疆
@@ -304,7 +409,7 @@
     handleAdd() {
       this.reset();
       this.open = true;
-      this.title = "娣诲姞杩濊瀹℃牳";
+      this.title = "娣诲姞杩濊璁板綍";
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
@@ -355,3 +460,30 @@
   }
 };
 </script>
+<style scoped>
+.margin-5 {
+  margin-left: 5px;
+}
+.row-warp {
+  display: flex;
+  flex-direction: column;
+}
+.row {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: center;
+  margin: 5px 0;
+}
+.row-left {
+  flex: 1;
+  display: flex;
+  flex-direction: row;
+}
+.row-right {
+  flex: 1;
+  display: flex;
+  flex-direction: row;
+}
+</style>
+
diff --git a/src/views/system/score/index.vue b/src/views/system/score/index.vue
index ba5dc99..bc0ad7a 100644
--- a/src/views/system/score/index.vue
+++ b/src/views/system/score/index.vue
@@ -1,14 +1,7 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-<!--      <el-form-item label="鍗曚綅鍚�" prop="unitId">-->
-<!--        <el-input-->
-<!--          v-model="queryParams.unitId"-->
-<!--          placeholder="璇疯緭鍏ュ崟浣嶅悕"-->
-<!--          clearable-->
-<!--          @keyup.enter.native="handleQuery"-->
-<!--        />-->
-<!--      </el-form-item>-->
+
       <el-form-item label="鑰冩牳鍚�" prop="examineId">
         <el-input
           v-model="queryParams.examineId"
@@ -17,14 +10,16 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-<!--      <el-form-item label="绉垎绫诲瀷" prop="scoreCategory">-->
-<!--        <el-input-->
-<!--          v-model="queryParams.scoreCategory"-->
-<!--          placeholder="璇疯緭鍏ョН鍒嗙被鍨�"-->
-<!--          clearable-->
-<!--          @keyup.enter.native="handleQuery"-->
-<!--        />-->
-<!--      </el-form-item>-->
+
+      <el-form-item label="鑰冩牳瀵硅薄" prop="unitName">
+        <el-cascader
+          v-model="value"
+          :options="options"
+          :props = "props"
+          :show-all-levels="false"
+          @change="handleChange"></el-cascader>
+      </el-form-item>
+
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
@@ -32,15 +27,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-        >鏂板</el-button>
-      </el-col>
       <el-col :span="1.5">
         <el-button
           type="success"
@@ -76,14 +62,18 @@
     <el-table v-loading="loading" :data="scoreList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="鑰冩牳鍚�" align="center" prop="examineName" />
-      <el-table-column label="鑰冩牳瀵硅薄" align="center" >
-        {{"鎴愰兘x杩愮淮"}}
+      <el-table-column label="鑰冩牳瀵硅薄" align="center" prop="unitName">
+      <template slot-scope="scope">
+        <div v-if="scope.row.unitName ==='鎴愰兘x杩愮淮' ">鎴愰兘x杩愮淮</div>
+        <div v-else>鑷祦浜曞尯</div>
+      </template>
       </el-table-column>
       <el-table-column label="鍒嗗��" align="center" prop="score" />
       <el-table-column label="鑰冩牳瑙勫垯" align="center" prop="scoreCategory">
       <template slot-scope="scope">
         <div v-if="scope.row.scoreCategory === 1">瑙嗛鍦ㄧ嚎鐜�</div>
         <div v-else-if="scope.row.scoreCategory === 2">瀛樺偍鏁呴殰</div>
+        <div v-else-if="scope.row.scoreCategory === 3">瑙嗗浘搴撳鎺ョǔ瀹氭��</div>
         <div v-else-if="scope.row.scoreCategory === 4">涓�鏈轰竴妗�24灏忔椂鏈慨澶�</div>
         <div v-else-if="scope.row.scoreCategory === 5">鏃堕挓涓嶅悓姝�24灏忔椂鏈慨澶�</div>
       </template>
@@ -92,13 +82,6 @@
       <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" />
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-s-check"
-            @click="handleAuditing(scope.row)"
-            v-hasPermi="['score:publish:audit']"
-          >瀹℃牳</el-button>
           <el-button
             size="mini"
             type="text"
@@ -178,6 +161,44 @@
   dicts: ['platform_operate_category'],
   data() {
     return {
+      options: [{
+        value: 'city',
+        label: '鍖哄幙',
+        children: [{
+          value: 'fushun',
+          label: '瀵岄『鍘�',
+        }, {
+          value: 'rong',
+          label: '鑽e幙',
+        },{
+          value: 'gaoxin',
+          label: '楂樻柊鍖�',
+        },{
+          value: 'ziliujing',
+          label: '鑷祦浜曞尯',
+        },{
+          value: 'gongjing',
+          label: '璐′簳鍖�',
+        },{
+          value: 'daan',
+          label: '澶у畨鍖�',
+        },{
+          value: 'yantan',
+          label: '娌挎哗鍖�',
+        },
+        ]
+      }, {
+        value: 'company',
+        label: '鍏徃',
+        children: [{
+          value: 'yunwei',
+          label: '鎴愰兘x杩愮淮',
+        }, {
+          value: 'yunwei2',
+          label: '鑷础x杩愮淮',
+        }, ]
+      },
+      ],
       scoreCategoryList: [
         { id: 2, value: '瀛樺偍鏁呴殰' },
         { id: 1, value: '瑙嗛鍦ㄧ嚎鐜�' },
@@ -185,8 +206,6 @@
         { id: 4, value: '涓�鏈轰竴妗�24灏忔椂鏈慨澶�' },
         { id: 5, value: '鏃堕挓涓嶅悓姝�24灏忔椂鏈慨澶�' },
       ],
-
-      unitList: [],
       examineList: [],
       // 閬僵灞�
       loading: true,

--
Gitblit v1.8.0