From 0aec6c3a08d63252cdf83129be26c924689ecb62 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 28 五月 2024 16:47:28 +0800
Subject: [PATCH] 更改头部

---
 admin/src/components/common/upload.vue                                                                    |  140 +++++++++--------
 admin/src/api/business/hiddenDanger.js                                                                    |    3 
 admin/src/components/business/OperaHiddenDangerWindow.vue                                                 |  281 ++++++++++++++++++++++++++++------
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java |    6 
 4 files changed, 307 insertions(+), 123 deletions(-)

diff --git a/admin/src/api/business/hiddenDanger.js b/admin/src/api/business/hiddenDanger.js
index f887ed4..37d6dab 100644
--- a/admin/src/api/business/hiddenDanger.js
+++ b/admin/src/api/business/hiddenDanger.js
@@ -20,6 +20,9 @@
 export function transferHiddenDanger (data) {
   return request.post('/visitsAdmin/cloudService/business/hiddenDanger/transferHiddenDanger', data)
 }
+export function dealHiddenDanger (data) {
+  return request.post('/visitsAdmin/cloudService/business/hiddenDanger/dealHiddenDanger', data)
+}
 
 // 淇敼
 export function updateById (data) {
diff --git a/admin/src/components/business/OperaHiddenDangerWindow.vue b/admin/src/components/business/OperaHiddenDangerWindow.vue
index 78dc481..f004feb 100644
--- a/admin/src/components/business/OperaHiddenDangerWindow.vue
+++ b/admin/src/components/business/OperaHiddenDangerWindow.vue
@@ -144,33 +144,16 @@
     </div>
     <!--  -->
     <template   v-slot:footer>
-      <el-button @click="dealDo"  type="primary"  v-if="model.status==0&& model.checkUserId == userInfo.memberId"  class="status-red">澶勭悊</el-button>
+      <el-button @click="isShowProblem = true"  type="primary"  v-if="model.status==0&& model.checkUserId == userInfo.memberId"  class="status-red">澶勭悊</el-button>
       <el-button type="primary" plain v-if="model.status==0 && model.checkUserId == userInfo.memberId" @click="handleTransfer">杞氦</el-button>
       <el-button @click="backDo"  v-if="model.status==0&& model.checkUserId == userInfo.memberId" type="danger"  >閫�鍥�</el-button>
       <el-button @click="visible=false">杩斿洖</el-button>
     </template>
-    <!--  鍚屾剰/鎷掔粷 -->
-    <el-dialog
-        append-to-body
-        :title="apprTitle"
-        :visible.sync="isShowAppr"
-        width="480px"
-    >
-      <el-input
-          type="textarea"
-          :placeholder="apprTitle + '璇存槑锛岄潪蹇呭~'"
-          :rows="4"
-          v-model="param.explain"
-      />
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="isShowAppr = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="isShowAppr = false">纭畾</el-button>
-      </span>
-    </el-dialog>
+
     <el-dialog
         append-to-body
         title="杞氦"
-        style="text-align: center"
+        class="dialogCl"
         :visible.sync="isShowTransfer"
         width="480px"
     >
@@ -188,42 +171,71 @@
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="isShowTransfer = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="transferSubmit">纭畾</el-button>
+        <el-button type="primary" :loading="transfering" @click="transferSubmit">纭畾</el-button>
       </span>
     </el-dialog>
     <!-- 闅愭偅 -->
     <el-dialog
         append-to-body
-        title="闅愭偅"
+        title="闅愭偅澶勭悊"
+        class="dialogCl"
         :visible.sync="isShowProblem"
-        width="480px"
+        width="600px"
     >
-      <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px">
-        <el-form-item label="閫�鍥炴椂闂�">
+      <el-form :model="dealForm" :rules="rulesDeal" ref="dealForm" label-width="100px">
+        <el-form-item label="鏁存敼鏃堕棿" prop="checkDate">
           <el-date-picker
               class="w300"
-              value-format="yyyy-MM-dd"
               type="date"
               placeholder="閫夋嫨鏃ユ湡"
-              v-model="param.date"
+              v-model="dealForm.checkDate"
           />
         </el-form-item>
-        <el-form-item label="鏁存敼鍓�">
+        <el-form-item label="鏁存敼鍓�" prop="dealBeforeFileList">
           <div class="df_ac">
-            <img src="@/assets/avatar/man.png" />
-            <el-upload
-                class="avatar-uploader"
-                action="https://jsonplaceholder.typicode.com/posts/"
-                :show-file-list="false"
-                :on-success="handleAvatarSuccess"
-                :before-upload="beforeAvatarUpload"
-            >
-              <img v-if="param.url" :src="param.url" class="avatar" />
-              <div v-else class="upload_box">
-                <el-icon class="el-icon-plus icon" />
-                <div class="text">鍥剧墖/瑙嗛</div>
-              </div>
-            </el-upload>
+            <upload  width="80px" height="80px" :list="dealForm.dealBeforeFileList" :tips="'鍥剧墖/瑙嗛'"  accept=".png,.jpg,.jpeg,.mp4" folder="hiddendanger" @loading="uploading = true" @dele="dele($event,0)" @success="uploadFileList($event, 0)" />
+          </div>
+        </el-form-item>
+        <el-form-item label="鏁存敼鍚�" prop="dealAfterFileList">
+          <div class="df_ac">
+            <upload   width="80px" height="80px" :list="dealForm.dealAfterFileList"  :tips="'鍥剧墖/瑙嗛'"   accept=".png,.jpg,.jpeg,.mp4" folder="hiddendanger" @loading="uploading = true"  @dele="dele($event,1)" @success="uploadFileList($event, 1)" />
+          </div>
+        </el-form-item>
+        <el-form-item label="澶勭悊璇存槑">
+          <el-input
+              type="textarea"
+              placeholder="璇峰~鍐欒鏄�"
+              :rows="4"
+              v-model="dealForm.checkInfo"
+          />
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="isShowProblem = false">鍙栨秷</el-button>
+        <el-button type="primary" :loading="dealing" @click="dealDo"
+        >纭畾</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog
+        append-to-body
+        title="闅愭偅閫�鍥�"
+        class="dialogCl"
+        :visible.sync="isBackProblem"
+        width="480px"
+    >
+      <el-form :model="backForm" :rules="rulesBack" ref="backForm" label-width="100px">
+        <el-form-item label="閫�鍥炴椂闂�" prop="checkDate">
+          <el-date-picker
+              class="w300"
+              type="date"
+              placeholder="閫夋嫨鏃ユ湡"
+              v-model="backForm.checkDate"
+          />
+        </el-form-item>
+        <el-form-item label="鏁存敼鍓�" prop="dealBeforeFileList">
+          <div class="df_ac">
+            <upload  width="80px" height="80px" :list="backForm.dealBeforeFileList" :tips="'鍥剧墖/瑙嗛'"    accept=".png,.jpg,.jpeg,.mp4" folder="hiddendanger" @loading="uploading = true" @dele="dele($event,2)" @success="uploadFileList($event, 2)" />
           </div>
         </el-form-item>
         <el-form-item label="閫�鍥炶鏄�">
@@ -231,13 +243,13 @@
               type="textarea"
               placeholder="璇峰~鍐欒鏄�"
               :rows="4"
-              v-model="param.explain"
+              v-model="backForm.checkInfo"
           />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="isShowProblem = false">鍙栨秷</el-button>
-        <el-button type="primary" :loading="transfering" @click="isShowProblem = false"
+        <el-button @click="isBackProblem= false">鍙栨秷</el-button>
+        <el-button type="primary" :loading="transfering" @click="backDo"
         >纭畾</el-button
         >
       </span>
@@ -248,10 +260,12 @@
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
+import upload from '@/components/common/upload'
 import { memberList } from '@/api/business/hiddenDangerParam'
-import {mapMutations} from "vuex";
+import { mapState } from 'vuex'
+import { dealHiddenDanger } from '@/api/business/hiddenDanger'
 export default {
-  components: { GlobalWindow },
+  components: { GlobalWindow, upload },
   extends: BaseOpera,
   data () {
     return {
@@ -264,7 +278,10 @@
       isShowAppr: false,
       apprTitle: '鍚屾剰',
       param: {},
+      uploading: false,
+      dealing: false,
       isShowProblem: false,
+      isBackProblem: false,
       isShowTransfer: false,
       rules: {},
       rulesTrans: {
@@ -272,11 +289,44 @@
           { required: true, message: '璇烽�夋嫨' }
         ]
       },
+      rulesDeal: {
+        checkDate: [
+          { required: true, message: '璇烽�夋嫨鏁存敼鏃堕棿' }
+        ],
+        dealBeforeFileList: [
+          { required: true, message: '璇蜂笂浼犳暣鏀瑰墠鎯呭喌' }
+        ],
+        dealAfterFileList: [
+          { required: true, message: '璇蜂笂浼犳暣鏀瑰悗鎯呭喌' }
+        ]
+      },
+      rulesBack: {
+        checkDate: [
+          { required: true, message: '璇烽�夋嫨閫�鍥炴椂闂�' }
+        ],
+        dealBeforeFileList: [
+          { required: true, message: '璇蜂笂浼犳暣鏀瑰墠鎯呭喌' }
+        ]
+      },
       memberList: [],
       transForm: {
         memberId: null
+      },
+      dealForm: {
+        checkDate: null,
+        checkInfo: null,
+        dealBeforeFileList: [],
+        dealAfterFileList: []
+      },
+      backForm: {
+        checkDate: null,
+        checkInfo: null,
+        dealBeforeFileList: []
       }
     }
+  },
+  computed: {
+    ...mapState(['userInfo'])
   },
   created () {
     this.config({
@@ -285,16 +335,141 @@
     })
   },
   methods: {
-    ...mapMutations(['userInfo']),
-    dealDo () { this.isShowProblem = true },
-    backDo () { this.isShowProblem = true },
+    dele (index, type) {
+      if (type == 0) {
+        if (this.dealForm.dealBeforeFileList != null && this.dealForm.dealBeforeFileList.length > index) {
+          this.dealForm.dealBeforeFileList.splice(index, 1)
+        }
+      } else if (type == 1) {
+        if (this.dealForm.dealAfterFileList != null && this.dealForm.dealAfterFileList.length > index) {
+          this.dealForm.dealAfterFileList.splice(index, 1)
+        }
+      } else if (type == 2) {
+        if (this.backForm.dealAfterFileList != null && this.backForm.dealAfterFileList.length > index) {
+          this.backForm.dealAfterFileList.splice(index, 1)
+        }
+      }
+    },
+    uploadFileList (e, objType) {
+      if (objType === 0) {
+        if (this.dealForm.dealBeforeFileList == null) {
+          this.dealForm.dealBeforeFileList = []
+        }
+        this.dealForm.dealBeforeFileList.push({
+          id: this.model.id,
+          url: e.url,
+          fileUrl: e.imgaddr,
+          fileName: e.originname,
+          fileType: e.type
+        })
+      } else if (objType === 1) {
+        if (this.dealForm.dealAfterFileList == null) {
+          this.dealForm.dealAfterFileList = []
+        }
+        this.dealForm.dealAfterFileList.push({
+          id: this.model.id,
+          fileUrl: e.imgaddr,
+          url: e.url,
+          fileName: e.originname,
+          fileType: e.type
+        })
+      } else if (objType === 2) {
+        if (this.backForm.dealAfterFileList == null) {
+          this.backForm.dealAfterFileList = []
+        }
+        this.backForm.dealAfterFileList.push({
+          id: this.model.id,
+          fileUrl: e.imgaddr,
+          url: e.url,
+          fileName: e.originname,
+          fileType: e.type
+        })
+      }
+    },
+    dealDo () {
+      this.$refs.dealForm.validate((valid) => {
+      // debugger
+        if (!valid) {
+          return
+        }
+        this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ゆ彁浜よ闅愭偅澶勭悊鎯呭喌鍚楋紵')
+          .then(() => {
+            this.transfering = true
+            this.api.dealHiddenDanger({
+              id: this.dataId,
+              status: 1,
+              checkDate: this.dealForm.checkDate,
+              checkInfo: this.dealForm.checkInfo,
+              dealBeforeFileList: this.dealForm.dealBeforeFileList,
+              dealAfterFileList: this.dealForm.dealBeforeFileList
+            })
+              .then(res => {
+                this.$tip.apiSuccess('杞氦鎴愬姛')
+                this.getDetail()
+                this.getLogList()
+                this.isShowTransfer = false
+              })
+              .catch(e => {
+              })
+              .finally(() => {
+                this.dealing = false
+              })
+          })
+      })
+    },
+    backDo () {
+      this.$refs.backForm.validate((valid) => {
+        if (!valid) {
+          return
+        }
+        this.$dialog.actionConfirm('鎿嶄綔纭', '鎮ㄧ‘璁ら��鍥炶闅愭偅澶勭悊鎯呭喌鍚楋紵')
+          .then(() => {
+            this.transfering = true
+            this.api.dealHiddenDanger({
+              id: this.dataId,
+              status: 0,
+              checkDate: this.backForm.checkDate,
+              checkInfo: this.backForm.checkInfo,
+              dealBeforeFileList: this.backForm.dealBeforeFileList
+            })
+              .then(res => {
+                this.$tip.apiSuccess('杞氦鎴愬姛')
+                this.getDetail()
+                this.getLogList()
+                this.isShowTransfer = false
+              })
+              .catch(e => {
+              })
+              .finally(() => {
+                this.dealing = false
+              })
+          })
+      })
+    },
     open (title, target) {
       this.title = title
       this.visible = true
       this.model = {}
       this.dataId = target.id
-      this.getDetail()
-      this.getLogList()
+      this.$nextTick(() => {
+        this.memberList = []
+        this.transForm = {
+          memberId: null
+        },
+        this.dealForm = {
+          checkDate: null,
+          checkInfo: null,
+          dealBeforeFileList: [],
+          dealAfterFileList: []
+        },
+        this.backForm = {
+          checkDate: null,
+          checkInfo: null,
+          dealBeforeFileList: []
+        }
+        this.getDetail()
+        this.getLogList()
+      })
     },
     transferSubmit () {
       this.$refs.transForm.validate((valid) => {
@@ -313,6 +488,7 @@
                 this.$tip.apiSuccess('杞氦鎴愬姛')
                 this.getDetail()
                 this.getLogList()
+                this.isShowTransfer = false
               })
               .catch(e => {
               })
@@ -320,7 +496,6 @@
                 this.transfering = false
               })
           })
-          .catch(() => {})
       })
     },
     getLogList () {
diff --git a/admin/src/components/common/upload.vue b/admin/src/components/common/upload.vue
index 9917980..d6dfc8d 100644
--- a/admin/src/components/common/upload.vue
+++ b/admin/src/components/common/upload.vue
@@ -8,76 +8,82 @@
                 <img :src="item.url" v-if="fileType(item.url) === 'img'" />
                 <video controls autoplay :src="item.url" v-else></video>
             </div>
-            <div class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
-                <i class="el-icon-plus"></i>
-            </div>
+          <div class="file_list_item" :style="{width: width, height: height, cursor: 'pointer'}" @click="$refs.file.click()">
+            <i class="el-icon-plus" style="font-size: 18px;color: #8c939d;text-align: center;margin-top: 10px"></i>
+            <i style="font-size: 12px;color: #8c939d;font-style: normal;text-align: center">{{tips}}</i>
+          </div>
+          <input type="file" ref="file" :accept="accept" @change="getFile" />
         </div>
-        <input type="file" ref="file" :accept="accept" @change="getFile" />
     </div>
 </template>
 
 <script>
-    import axios from 'axios';
-    export default {
-        props: {
-            width: {
-                type: String,
-                default: '90px'
-            },
-            height: {
-                type: String,
-                default: '90px'
-            },
-            list: {
-                type: Array,
-                default: []
-            },
-            accept: {
-                type: String,
-                default: ''
-            },
-            folder: {
-                type: String,
-                default: ''
-            }
-        },
-        data() {
-            return {
-                uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload'
-            }
-        },
-
-        methods: {
-            fileType(url) {
-                if (url.indexOf('.mp4') !== -1) {
-                    return 'video'
-                } else {
-                    return 'img'
-                }
-            },
-            getFile(e) {
-                if (e.target && e.target.files.length > 0) {
-                    this.$emit('loading')
-                    const formdate = new FormData()
-                    formdate.append('file', e.target.files[0])
-                    formdate.append('folder', this.folder)
-                    axios.post(this.uploadImgUrl, formdate)
-                        .then(res => {
-                            this.$emit('success', res.data.data)
-                        })
-                        .catch(e => {
-                            this.$message.error(e)
-                        })
-                        .finally(() => {
-                            this.$refs.file.value = null
-                        })
-                }
-            },
-            deleItem(index) {
-                this.$emit('dele', index)
-            }
-        }
+import axios from 'axios'
+export default {
+  props: {
+    width: {
+      type: String,
+      default: '90px'
+    },
+    height: {
+      type: String,
+      default: '90px'
+    },
+    list: {
+      type: Array,
+      default: []
+    },
+    tips: {
+      type: String,
+      default: '0'
+    },
+    accept: {
+      type: String,
+      default: ''
+    },
+    folder: {
+      type: String,
+      default: ''
     }
+  },
+  data () {
+    return {
+      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload'
+    }
+  },
+
+  methods: {
+    fileType (url) {
+      if (url.indexOf('.mp4') !== -1) {
+        return 'video'
+      } else {
+        return 'img'
+      }
+    },
+    getFile (e) {
+      if (e.target && e.target.files.length > 0) {
+        this.$emit('loading')
+        const formdate = new FormData()
+        formdate.append('file', e.target.files[0])
+        formdate.append('folder', this.folder)
+        axios.post(this.uploadImgUrl, formdate)
+          .then(res => {
+            this.$emit('success', res.data.data)
+            console.log(res.data.data)
+          })
+          .catch(e => {
+            this.$message.error(e)
+          })
+          .finally(() => {
+            this.$refs.file.value = null
+          })
+      }
+    },
+    deleItem (index) {
+      this.$emit('dele', index)
+    }
+  }
+}
 </script>
 
 <style lang="scss" scoped>
@@ -102,7 +108,7 @@
                 overflow: hidden;
                 border-radius: 5px;
                 border: 1px solid #d5d5d5;
-                margin-left: 15px;
+                margin: 5px;
                 position: relative;
                 &:first-child {
                     margin: 0 !important;
@@ -117,10 +123,11 @@
                     display: flex;
                     align-items: center;
                     justify-content: center;
+                    z-index: 10000;
                     cursor: pointer;
                     .el-icon-close {
                         color: #ffffff;
-                        font-size: 19px;
+                        font-size: 14px;
                     }
                 }
                 .el-icon-plus {
@@ -138,4 +145,3 @@
         }
     }
 </style>
-
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index 6ce42c5..fc8318f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -373,14 +373,14 @@
         if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佸凡娴佽浆!");
         }
-        if (!Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getEditor())) {
+        if (!Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getLoginUserInfo().getMemberId())) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"澶勭悊浜洪潪褰撳墠浜哄憳锛�");
         }
         if(Constants.equalsInteger(model.getCheckUserId(),hiddenDanger.getCheckUserId())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶杞氦缁欒嚜宸�");
         }
         Member member = memberMapper.selectById(hiddenDanger.getCheckUserId());
-        if(member == null || !Constants.equalsInteger(member.getType(), Constants.TWO) || Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){
+        if(member == null || !Constants.equalsInteger(member.getType(), Constants.TWO) || Constants.equalsInteger(Constants.ONE,member.getIsdeleted())){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝杞氦浜轰俊鎭笉瀛樺湪锛岃鍒锋柊椤甸潰閲嶈瘯锛�");
         }
         hiddenDanger.setEditor(hiddenDanger.getLoginUserInfo().getId());
@@ -393,7 +393,7 @@
         hiddenDangerLog.setCreator(hiddenDanger.getEditor());
         hiddenDangerLog.setEditDate(hiddenDangerLog.getCreateDate());
         hiddenDangerLog.setEditor(hiddenDanger.getCreator());
-        hiddenDangerLog.setTitle("鐢�"+StringUtils.defaultString(hiddenDanger.getCheckorName())+"杞氦缁�"+StringUtils.defaultString(member.getName()));
+        hiddenDangerLog.setTitle("杞氦缁�"+StringUtils.defaultString(member.getName()));
         hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId());
         hiddenDangerLog.setObjType(Constants.ONE);
         hiddenDangerLogMapper.insert(hiddenDangerLog);

--
Gitblit v1.9.3