From 448ebe0754e006d5a1ad37f87bd8fe961eb58277 Mon Sep 17 00:00:00 2001
From: 安瑾然 <107107765@qq.com>
Date: 星期四, 21 七月 2022 16:57:37 +0800
Subject: [PATCH] login

---
 src/views/common/Audit.vue |  286 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 271 insertions(+), 15 deletions(-)

diff --git a/src/views/common/Audit.vue b/src/views/common/Audit.vue
index b246b88..dbac5e6 100644
--- a/src/views/common/Audit.vue
+++ b/src/views/common/Audit.vue
@@ -36,7 +36,7 @@
         <el-table-column prop="id" label="搴忓彿" width="60"></el-table-column>
         <el-table-column width="80" prop="pic" label="澶村儚">
           <template slot-scope="scope">
-            <img :src="scope.row.pic | fileNameToPath" style="width: 40px;height: 40px; border-radius: 50%;">
+            <img :src="scope.row.pic" style="width: 40px;height: 40px; border-radius: 50%;">
           </template>
         </el-table-column>
         <el-table-column width="80" prop="reporterName" label="鎶ユ浜�"></el-table-column>
@@ -76,22 +76,160 @@
                      :total="total"></el-pagination>
     </el-card>
     <!--娣诲姞浜哄憳寮圭獥-->
-    <el-dialog
-        title="鎻愮ず"
-        :visible.sync="addAduitDialogVisible"
-        width="30%"
-        :before-close="addAduitClose">
-      <span>杩欐槸涓�娈典俊鎭�</span>
+    <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="pic" required>
+              <el-upload ref="pic" action="/api/minio/upload" :show-file-list="false" :on-success="handleAvatarSuccess"
+                         list-type="picture-card" accept="image/*">
+                <img v-if="picShow" :src="picShow" style="width: 145px;height: 145px">
+                <i v-else class="el-icon-plus"></i>
+              </el-upload>
+            </el-form-item>
+          </el-col>
+          <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="fileList" required>
+              <el-upload ref="reportMaterials" :file-list="auditFrom.fileList"
+                         action="/api/minio/upload" list-type="picture" :on-success="handleMaterialSuccess">
+                <el-button size="small" type="primary" icon="el-icon-upload">鐐瑰嚮涓婁紶</el-button>
+              </el-upload>
+            </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="addAduitDialogVisible = false">纭� 瀹�</el-button>
-  </span>
+        <el-button @click="addAduitDialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="addAduit">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <!--鏌ョ湅璇︽儏寮圭獥-->
+    <el-dialog title="妗堜欢璇︽儏" :visible.sync="infoAduitDialogVisible" width="50%" :before-close="infoAduitClose">
+      <el-row :gutter="15">
+        <el-form ref="infoAduitForm" :model="auditInfo" size="medium" label-width="100px">
+          <el-col :span="12">
+            <el-form-item label="澶村儚" prop="pic" required>
+              <el-image style="width: 145px; height: 145px" :src="picShow" :preview-src-list="new Array(picShow)"></el-image>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎶ユ浜� ">
+              <el-input v-model="auditInfo.reporterName" disabled
+                        :style="{width: '100%'}"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鎵嬫満鍙风爜">
+              <el-input v-model="auditInfo.mobile" disabled :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="韬唤璇佸彿">
+              <el-input v-model="auditInfo.idcard" disabled :style="{width: '100%'}">
+              </el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="琚獥鏃堕棿">
+              <el-date-picker v-model="auditInfo.tmpTime" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+                              :style="{width: '100%'}" format="yyyy-MM-dd HH:mm:ss"
+                              :value-format="auditFrom.cheatTime" disabled></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="娑夋閲戦">
+              <el-input v-model="auditInfo.amountInvolved" placeholder="璇疯緭鍏ユ秹妗堥噾棰�"
+                        :style="{width: '100%'}" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="妗堜欢鎻忚堪">
+              <el-input v-model="auditInfo.reportDescription" placeholder="璇疯緭鍏ユ浠舵弿杩�"
+                        :style="{width: '100%'}" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="琛ュ厖淇℃伅">
+              <el-input v-model="auditInfo.information" type="textarea" placeholder="璇疯緭鍏ヨˉ鍏呬俊鎭�"
+                        :autosize="{minRows: 4, maxRows: 4}" :style="{width: '100%'}" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="涓婁紶" required>
+              <el-upload ref="reportMaterials" :file-list="auditInfo.fileList"
+                         action="/api/minio/upload" list-type="picture" :on-success="handleMaterialSuccess">
+                <el-button size="small" type="primary" icon="el-icon-upload">鐐瑰嚮涓婁紶</el-button>
+              </el-upload>
+            </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%'}" disabled>
+                <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>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import {getAuditList} from '@/api/common'
+import {getAuditList, getImgUrl, getReportById, report} from '@/api/common'
 
 export default {
   name: "Audit",
@@ -103,8 +241,24 @@
         isInGroup: '5',
         current: 1,
         HavaMaterial: '5',
-        size: 10
+        size: 10,
       },
+      auditFrom: {
+        pic: '',
+        reporterName: '',
+        mobile: '',
+        idcard: '',
+        cheatTime: '',
+        amountInvolved: '',
+        reportDescription: '',
+        information: '',
+        reportMaterials: "",
+        causeId: '',
+        fileList: [],
+        tmpTime: '',
+      },
+      auditInfo: {},
+      picShow: "",
       optionsGroup: [
         {
           value: '5',
@@ -136,14 +290,96 @@
       total: 0,
       list: [],
       addAduitDialogVisible: false,
+      infoAduitDialogVisible: false,
+      causeOptions: [],
+      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'
+        }],
+      },
     }
   },
   created() {
     this.getList()
+    this.getCauseOptions()
   },
   methods: {
+    infoAduitClose() {
+      this.infoAduitDialogVisible = false
+      this.$refs.infoAduitForm.resetFields()
+    },
+    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()
+        })
+      })
+    },
+    async getCauseOptions() {
+      const {data: data} = await this.$http.get('/api/cause/getCauseIdAndName');
+      this.causeOptions = data.data;
+    },
+    handleAvatarSuccess(res, file) {
+      this.auditFrom.pic = res.data
+      console.log(res.data)
+      getImgUrl(res.data).then(res => {
+        this.picShow = res
+      })
+    },
+    async handleMaterialSuccess(res, file) {
+      this.auditFrom.fileList.push({
+        name: file.name,
+        url: await getImgUrl(res.data),
+        data: res.data
+      })
+    },
     addAduitClose() {
       this.addAduitDialogVisible = false
+      this.$refs.addAduitForm.resetFields()
+      this.picShow = ""
     },
     getList() {
       let param = {}
@@ -156,6 +392,15 @@
       getAuditList(param).then(res => {
         this.total = res.total
         this.list = res.records
+        this.list.forEach(x => {
+          if (x.pic === '' || x.pic === null) {
+            x.pic = './logo.png';
+          } else {
+            getImgUrl(x.pic).then(res => {
+              x.pic = res
+            })
+          }
+        })
       })
     },
     search() {
@@ -171,11 +416,17 @@
       this.getList();
     },
     details(id) {
-      console.log(id)
+      getReportById(id).then(res => {
+        this.auditInfo = res
+        getImgUrl(res.pic).then(res => {
+          this.picShow = res
+        })
+        this.infoAduitDialogVisible = true
+      })
     },
     audit(id) {
       console.log(id)
-    }
+    },
   }
 }
 </script>
@@ -188,4 +439,9 @@
 .demo-form-inline .el-select {
   width: 100px;
 }
-</style>
\ No newline at end of file
+
+.el-form-item {
+  margin-top: 20px;
+}
+
+</style>

--
Gitblit v1.8.0