From 9b3de9ec4980c4b4acc8093a6e86dc14bc73292b Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期四, 21 七月 2022 17:48:10 +0800
Subject: [PATCH] second commit

---
 src/views/cause/Entry.vue |  271 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 257 insertions(+), 14 deletions(-)

diff --git a/src/views/cause/Entry.vue b/src/views/cause/Entry.vue
index 9872489..534a1b8 100644
--- a/src/views/cause/Entry.vue
+++ b/src/views/cause/Entry.vue
@@ -4,7 +4,7 @@
       <template slot="header">
         <el-form :inline="true" :model="queryInfo" class="demo-form-inline">
           <el-form-item label="妗堜欢锛�">
-            <el-input placeholder="璇疯緭鍏ユ浠剁紪鍙锋垨鍚嶇О" v-model="queryInfo.title"></el-input>
+            <el-input placeholder="璇疯緭鍏ユ浠剁紪鍙锋垨鍚嶇О" v-model="queryInfo.cause"></el-input>
           </el-form-item>
           <el-form-item label="妗堜欢鐘舵�侊細">
             <el-select v-model="queryInfo.status" placeholder="璇烽�夋嫨">
@@ -16,34 +16,155 @@
             <el-button type="primary" @click="search">鏌ヨ</el-button>
           </el-form-item>
           <el-form-item>
-            <el-button type="primary" @click="addDialogOpen">娣诲姞</el-button>
+            <el-button type="primary" @click="addAduitDialogVisible=true">娣诲姞</el-button>
           </el-form-item>
+
           <el-form-item>
-            <el-button type="primary" @click="exportExcel">瀵煎叆</el-button>
+            <el-upload name="multipartFile" class="upload-demo" action="/api/cause/upload " :show-file-list="false"
+              :before-upload="beforeAvatarUpload" :on-success="respond" :limit="1">
+              <el-button type="primary">瀵煎叆</el-button>
+            </el-upload>
           </el-form-item>
         </el-form>
       </template>
-      <el-pagination @current-change="handleCurrentChange" :current-page="queryInfo.current"
-                     :page-size="queryInfo.size" layout="prev, pager, next"
-                     :total="total"></el-pagination>
+      <template>
+        <el-table :data="casueList" style="width: 100%">
+          <el-table-column prop="number" label="妗堜欢缂栧彿" width="150" header-align="center">
+          </el-table-column>
+          <el-table-column prop="name" label="妗堜欢鍚嶇О" width="180" header-align="center">
+          </el-table-column>
+          <el-table-column prop="reportNumber" label="鎶ユ浜烘暟" width="100" header-align="center" align="center">
+          </el-table-column>
+          <el-table-column prop="firstTime" label="鏈�鏃╁彂妗堟棩鏈�" width="150" header-align="center" align="center">
+          </el-table-column>
+          <el-table-column prop="status" label="妗堜欢鐘舵��" width="110" header-align="center" align="center">
+            <template slot-scope="scope">
+              <span v-if="scope.row.status == 0">鏈鏍�</span>
+              <span v-if="scope.row.status == 1">涓嶄簣绔嬫</span>
+              <span v-if="scope.row.status == 2">鍙楃悊涓�</span>
+              <span v-if="scope.row.status == 3">宸茬粨妗�</span>
+              <span v-if="scope.row.status == 4">宸叉挙妗�</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="userName" label="璐熻矗浜�" width="130" header-align="center" align="center">
+          </el-table-column>
+          <el-table-column prop="ctime" label="鍒涘缓鏃ユ湡" width="160" header-align="center" align="center">
+          </el-table-column>
+          <el-table-column label="鎿嶄綔" width="240" header-align="center" align="center">
+            <template slot-scope="scope">
+              <el-button type="text" size="medium" @click="handleAudit(scope.row)">缂栬緫</el-button>
+              <el-button type="text" size="medium" @click="handleAudit(scope.row)">鎶ユ浜哄憳</el-button>
+              <el-button type="text" size="medium" @click="handleAudit(scope.row)">缇ゅ叕鍛�</el-button>
+              <el-button type="text" size="medium" @click="removeCause(scope.row.id)" style="color:#ff0000">鍒犻櫎
+              </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </template>
+      <el-pagination @current-change="handleCurrentChange" :current-page="queryInfo.current" :page-size="queryInfo.size"
+        layout="prev, pager, next" :total="total"></el-pagination>
     </el-card>
+
+     <!--娣诲姞浜哄憳寮圭獥-->
+          <el-dialog title="娣诲姞" :visible.sync="addAduitDialogVisible" width="50%" :before-close="addAduitClose">
+            <el-row :gutter="15">
+              <el-form ref="addAduitForm" :model="auditFrom" :rules="rules" size="medium" label-width="100px">
+                <el-col :span="12">
+                  <el-form-item label="鎶ユ浜� " prop="reporterName">
+                    <el-input v-model="auditFrom.reporterName" placeholder="璇疯緭鍏ユ姤妗堜汉 " clearable
+                      :style="{ width: '100%' }">
+                    </el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="鎵嬫満鍙风爜" prop="mobile">
+                    <el-input v-model="auditFrom.mobile" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" clearable :style="{ width: '100%' }">
+                    </el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="韬唤璇佸彿" prop="idcard">
+                    <el-input v-model="auditFrom.idcard" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" clearable :style="{ width: '100%' }">
+                    </el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="琚獥鏃堕棿" prop="cheatTime">
+                    <el-date-picker v-model="auditFrom.tmpTime" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+                      :style="{ width: '100%' }" format="yyyy-MM-dd HH:mm:ss" :value-format="auditFrom.cheatTime">
+                    </el-date-picker>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="娑夋閲戦" prop="amountInvolved">
+                    <el-input v-model="auditFrom.amountInvolved" placeholder="璇疯緭鍏ユ秹妗堥噾棰�" clearable
+                      :style="{ width: '100%' }"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="妗堜欢鎻忚堪" prop="reportDescription">
+                    <el-input v-model="auditFrom.reportDescription" placeholder="璇疯緭鍏ユ浠舵弿杩�" clearable
+                      :style="{ width: '100%' }"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="琛ュ厖淇℃伅" prop="information">
+                    <el-input v-model="auditFrom.information" type="textarea" placeholder="璇疯緭鍏ヨˉ鍏呬俊鎭�"
+                      :autosize="{ minRows: 4, maxRows: 4 }" :style="{ width: '100%' }"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="24">
+                  <el-form-item label="鍏宠仈妗堜欢" prop="causeId">
+                    <el-select v-model="auditFrom.causeId" placeholder="璇烽�夋嫨涓嬫媺閫夋嫨" clearable :style="{ width: '50%' }">
+                      <el-option v-for="item in causeOptions" :key="item.id" :label="item.name" :value="item.id">
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+              </el-form>
+            </el-row>
+            <span slot="footer" class="dialog-footer">
+              <el-button @click="addAduitDialogVisible = false">鍙� 娑�</el-button>
+              <el-button type="primary" @click="addAduit">纭� 瀹�</el-button>
+            </span>
+          </el-dialog>
   </div>
 </template>
 
 <script>
+import {
+  casueList,
+  remove
+} from '@/api/cause'
+
 export default {
   name: "Entry",
   data() {
     return {
+      causeOptions: [],
+      auditFrom: {
+        reporterName: '',
+        mobile: '',
+        idcard: '',
+        cheatTime: '',
+        amountInvolved: '',
+        reportDescription: '',
+        information: '',
+        reportMaterials: "",
+        causeId: '',
+        fileList: [],
+        tmpTime: '',
+      },
+      casueList: [],
       queryInfo: {
-        title: '',
-        status: '5',
+        cause: '',
+        status: null,
         current: 1,
         size: 10
       },
       options: [
         {
-          value: '5',
+          value: null,
           label: '鍏ㄩ儴'
         },
         {
@@ -68,19 +189,126 @@
         }
       ],
       total: 0,
+      addAduitDialogVisible: false,
+      rules: {
+        reporterName: [{
+          required: true,
+          message: '璇疯緭鍏ユ姤妗堜汉 ',
+          trigger: 'blur'
+        }],
+        mobile: [{
+          required: true,
+          message: '璇疯緭鍏ユ墜鏈哄彿鐮�',
+          trigger: 'blur'
+        }],
+        idcard: [{
+          required: true,
+          message: '璇疯緭鍏ヨ韩浠借瘉鍙�',
+          trigger: 'blur'
+        }],
+        tmpTime: [{
+          required: true,
+          message: '璇疯緭鍏ヨ楠楁椂闂�',
+          trigger: 'blur'
+        }],
+        amountInvolved: [{
+          required: true,
+          message: '璇疯緭鍏ユ秹妗堥噾棰�',
+          trigger: 'blur'
+        }],
+        reportDescription: [{
+          required: true,
+          message: '璇疯緭鍏ユ浠舵弿杩�',
+          trigger: 'blur'
+        }],
+        information: [{
+          required: true,
+          message: '璇疯緭鍏ヨˉ鍏呬俊鎭�',
+          trigger: 'blur'
+        }],
+        causeId: [{
+          required: true,
+          message: '璇烽�夋嫨涓嬫媺閫夋嫨',
+          trigger: 'change'
+        }],
+      },
     }
   },
-  methods: {
+  created() {
+    this.init()
+  },
+  methods:
+  {
+    addAduitClose() {
+      this.addAduitDialogVisible = false
+      this.$refs.addAduitForm.resetFields()
+      this.picShow = ""
+    },
+    addAduit() {
+      this.$refs.addAduitForm.validate(async (vaild) => {
+        if (!vaild) return this.$message.error('杈撳叆鏈夎')
+        this.auditFrom.reportMaterials = this.auditFrom.fileList.map(i => i.data).join(',')
+        report(this.auditFrom).then(res => {
+          this.$message.success('鎻愪氦鎴愬姛')
+          this.addAduitDialogVisible = false
+          this.getList()
+        }).catch(err => {
+          this.addAduitClose()
+        })
+      })
+    },
+    respond(res) {
+      if (res.code == 200) {
+        this.$message({
+          message: '涓婁紶鎴愬姛',
+          type: 'success'
+        }
+        )
+      } else {
+        this.$message({
+          message: res.msg,
+          type: 'error'
+        })
+      }
+      location.reload();
+    },
+    beforeAvatarUpload(file) {
+      let Xls = file.name.split('.');
+      if (Xls[1] === 'xls' || Xls[1] === 'xlsx') {
+        return file
+      } else {
+        this.$message.error('涓婁紶鏂囦欢鍙兘鏄� xls/xlsx 鏍煎紡!')
+        return false
+      }
+    },
+    init() {
+      casueList().then(
+        res => {
+          this.total = res.total
+          this.casueList = res.records
+        }
+      )
+    },
     getList() {
-      this.$http.get('/api/entry/list', {
+      this.$http.get('/api/cause/getCauseList', {
         params: this.queryInfo
       }).then(res => {
-        this.total = res.data.total
-        this.list = res.data.list
+        this.total = res.data.data.total
+        this.casueList = res.data.data.records
       })
     },
     search() {
-    },
+      this.$http.get('/api/cause/getCauseList', {
+        params: this.queryInfo
+      }).then(
+        res => {
+          this.total = res.data.data.total
+          this.casueList = res.data.data.records
+        }
+      )
+
+    }
+    ,
     addDialogOpen() {
     },
     exportExcel() {
@@ -89,6 +317,17 @@
       this.queryInfo.current = val;
       this.getList();
     },
+    removeCause(val) {
+      remove(val).then(
+        res => {
+          this.$message({
+            message: '鍒犻櫎鎴愬姛',
+            type: 'success'
+          });
+          this.getList();
+        }
+      )
+    }
   }
 }
 </script>
@@ -97,4 +336,8 @@
 .el-form-item {
   margin-bottom: 0;
 }
+
+::v-deep(.el-table thead) {
+  color: #000000;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0