From e2b173475a8bf14717a53f2daa0257804644bd45 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期三, 19 六月 2024 11:23:26 +0800
Subject: [PATCH] ‘’
---
h5/pages/staff/snapshot.vue | 2
admin/src/components/operation/HiddenDangerParam.vue | 275 +++++++++++++++++++++++++++++++++++++++++++++
admin/src/views/operation/danger/record.vue | 39 +++++
3 files changed, 311 insertions(+), 5 deletions(-)
diff --git a/admin/src/components/operation/HiddenDangerParam.vue b/admin/src/components/operation/HiddenDangerParam.vue
new file mode 100644
index 0000000..c8bfb1a
--- /dev/null
+++ b/admin/src/components/operation/HiddenDangerParam.vue
@@ -0,0 +1,275 @@
+<template>
+ <GlobalWindow
+ title="鏂板闅愭偅闅忔墜鎷�"
+ width="600px"
+ :visible.sync="isShowModal"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="param" ref="paramRef" :rules="rules">
+ <el-form-item label="鎻愭姤浜�" prop="realname">
+ <div>{{ userInfo.realname }}</div>
+ </el-form-item>
+ <el-form-item label="鑱旂郴鐢佃瘽" prop="mobile">
+ {{ userInfo.mobile }}
+ </el-form-item>
+ <el-form-item label="鎻愭姤鏃堕棿" prop="submitTime">
+ <el-date-picker
+ v-model="param.submitTime"
+ format="yyyy-MM-dd HH:mm"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetime"
+ default-time="08:00:00"
+ />
+ </el-form-item>
+ <el-form-item label="闅愭偅鍖哄煙" prop="areaId">
+ <el-select v-model="param.areaId" @change="changeArea" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in addrList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="澶勭悊浜�" prop="checkUserId">
+ <el-select v-model="param.checkUserId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in memberList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="闅愭偅绫诲瀷" prop="cateId">
+ <el-select v-model="param.cateId" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in typeList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鐜板満鎯呭喌">
+ <div class="file_list">
+ <el-upload
+ class="avatar-uploader"
+ :data="uploadData"
+ :auto-upload="true"
+ :action="uploadImgUrl"
+ :show-file-list="false"
+ :on-success="uploadAvatarSuccess"
+ :before-upload="beforeUpload"
+ >
+ <div class="upload_wrap">
+ <i class="el-icon-plus avatar-uploader-icon"></i>
+ <div>鍥剧墖/瑙嗛</div>
+ </div>
+ </el-upload>
+ <div v-for="(item, i) in fileList" :key="i" class="item">
+ <i @click="handleDelImg(i)" class="el-icon-error close"></i>
+ <el-image
+ :src="item.fileurlFull"
+ :preview-src-list="[item.fileurlFull]"
+ v-if="item.type == 0"
+ class="img"
+ ></el-image>
+ <video
+ :src="item.fileurlFull"
+ controls
+ v-if="item.type == 1"
+ class="img"
+ ></video>
+ </div>
+ </div>
+ </el-form-item>
+ <el-form-item label="鎯呭喌璇存槑" prop="content">
+ <el-input
+ type="textarea"
+ :rows="4"
+ v-model="param.content"
+ placeholder="璇疯緭鍏�"
+ ></el-input>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadFaceImg from '@/components/common/UploadFaceImg'
+import { allList, memberList } from '@/api/business/hiddenDangerParam'
+import { create } from '@/api/business/hiddenDanger'
+export default {
+ name: 'OperaVisitsHkWindow',
+ extends: BaseOpera,
+ components: {
+ GlobalWindow
+ },
+ data () {
+ return {
+ isShowModal: false,
+ param: {},
+ userInfo: this.$store.state.userInfo,
+ uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/uploadBatch',
+ typeList: [],
+ addrList: [],
+ memberList: [],
+ fileList: [],
+
+ uploadData: {
+ folder: 'HIDDEN_DANGER_FILE'
+ },
+ rules: {
+ // starttime: [{ required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'change' }],
+ areaId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+ cateId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+ checkUserId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }],
+ faceImgUrl: [{ required: true, message: '璇蜂笂浼�', trigger: 'change' }],
+
+ content: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
+ }
+ }
+ },
+ created () {
+ this.initData()
+ },
+ methods: {
+ initData () {
+ allList({ type: 1 }).then(res => { // 绫诲瀷
+ this.typeList = res || []
+ })
+ allList({ type: 0 }).then(res => { // 浣嶇疆
+ this.addrList = res || []
+ })
+ memberList({}).then(res => {
+ this.memberList = res || []
+ })
+ },
+ changeArea (e) {
+ const item = this.addrList.find(i => i.id === e)
+ const arr = []
+ const memberIds = item.memberIds.split(',')
+ const memberNames = item.memberNames.split(',')
+ if (memberIds && memberIds.length === 1) {
+ this.$set(this.param, 'checkUserId', memberIds[0])
+ }
+ memberIds.forEach((mem, i) => {
+ arr.push({
+ id: memberIds[i],
+ name: memberNames[i]
+ })
+ })
+ this.memberList = arr
+ },
+ beforeUpload (file) {
+ if (['video/mp4', 'video/ogg', 'video/flv', 'video/avi', 'video/wmv', 'video/rmvb', 'image/jpeg', 'image/png', 'image/gif'].indexOf(file.type) == -1) {
+ this.$message.error('璇蜂笂浼犳纭殑瑙嗛/鍥剧墖鏍煎紡')
+ return false
+ }
+ },
+ uploadAvatarSuccess (file) {
+ console.log('file', file)
+ const item = file.data[0]
+ if (['.mp4', '.avi', '.flv', '.wmv'].indexOf(item.imgaddr) === -1) {
+ this.fileList.push({
+ type: 0,
+ fileurl: item.imgaddr,
+ fileurlFull: item.url
+ })
+ } else {
+ this.fileList.push({
+ type: 1,
+ fileurl: item.imgaddr,
+ fileurlFull: item.url
+ })
+ }
+ console.log('file', this.fileList)
+ // this.$set(this.param, 'faceImg', file.imgurl)
+ // this.$set(this.param, 'faceImgUrl', file.imgurlfull)
+ },
+ handleDelImg (i) {
+ this.fileList.splice(i, 1)
+ },
+ // 鍚屾淇℃伅
+ confirm () {
+ this.$refs.paramRef.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ create({
+ ...this.param,
+ applyCheckUserId: this.param.checkUserId,
+ submitFileList: this.fileList,
+ memberId: this.userInfo.memberId
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鎻愪氦鎴愬姛')
+ this.$emit('success')
+ this.$emit('close')
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ }
+ }
+}
+</script>
+<style lang="scss" scoped>
+$image-width: 90px;
+.avatar-uploader {
+ width: $image-width !important;
+ height: $image-width;
+ margin-bottom: 30px;
+ .upload_wrap {
+ width: 90px;
+ height: 90px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ color: #999999;
+ }
+ .avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ text-align: center;
+ }
+}
+.file_list {
+ display: flex;
+ flex-wrap: wrap;
+ .item {
+ width: 90px;
+ max-height: 90px;
+ margin-left: 10px;
+ position: relative;
+ .close{
+ font-size: 20px;
+ position: absolute;
+ right: -10px;
+ top: -10px;
+ z-index: 111;
+ color: red;
+ cursor: pointer;
+ }
+ .img {
+ width: 90px;
+ max-height: 90px;
+ }
+ }
+}
+</style>
diff --git a/admin/src/views/operation/danger/record.vue b/admin/src/views/operation/danger/record.vue
index 83b4168..da410d6 100644
--- a/admin/src/views/operation/danger/record.vue
+++ b/admin/src/views/operation/danger/record.vue
@@ -60,8 +60,9 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:empower:create', 'business:empower:delete']">
- <!--<li><el-button type="primary" v-permissions="['business:empower:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li> -->
+ <ul class="toolbar" v-permissions="['business:hiddendanger:create', 'business:hiddendanger:exportExcel']">
+ <li><el-button type="primary" icon="el-icon-plus" v-permissions="['business:hiddendanger:create']" @click="handleEdit">鏂板缓</el-button></li>
+ <li><el-button type="primary" v-permissions="['business:hiddendanger:exportExcel']" @click="handleEx">瀵煎嚭</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
@@ -101,6 +102,8 @@
</pagination>
</template>
<OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="handlePageChange"/>
+ <!-- 鏂板缓 -->
+ <HiddenDangerParam @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="HiddenDangerParamRef" />
</TableLayout>
</template>
@@ -109,14 +112,16 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaHiddenDangerWindow from '@/components/business/OperaHiddenDangerWindow'
+import HiddenDangerParam from '@/components/operation/HiddenDangerParam.vue'
import { timeForMat } from '@/utils/util'
-import { allList } from '@/api/business/hiddenDangerParam'
+import { allList, exportExcel } from '@/api/business/hiddenDangerParam'
export default {
name: 'Empower',
extends: BaseTable,
- components: { TableLayout, Pagination ,OperaHiddenDangerWindow},
+ components: { TableLayout, Pagination ,OperaHiddenDangerWindow, HiddenDangerParam},
data () {
return {
+ isShowEdit: false,
// 鎼滅储
searchForm: {
memberName: '',
@@ -145,6 +150,32 @@
this.loadParams()
},
methods: {
+ handleEx () {
+ this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵')
+ .then(() => {
+ this.exLoading = true
+ exportExcel({
+ page: this.pagination.page,
+ capacity: 1000000,
+ model: this.filters
+ })
+ .then(response => {
+ this.download(response)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.exLoading = false
+ })
+ })
+ },
+ handleEdit () {
+ this.isShowEdit = true
+ this.$nextTick(() => {
+ this.$refs.HiddenDangerParamRef.isShowModal = true
+ })
+ },
changeRadio (e) {
this.searchForm.radio = e
if (e === '0') {
diff --git a/h5/pages/staff/snapshot.vue b/h5/pages/staff/snapshot.vue
index c0a30be..341a36e 100644
--- a/h5/pages/staff/snapshot.vue
+++ b/h5/pages/staff/snapshot.vue
@@ -125,7 +125,7 @@
<text
class="mr6"
:style="{ color: param.submitTime ? '#000000' : '#999999' }"
- >{{ param.submitTime ? param.submitTime : "璇烽�夋嫨" }}</text
+ >{{ param.submitTime ? param.submitTime.slice(0, 16) : "璇烽�夋嫨" }}</text
>
<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
</view>
--
Gitblit v1.9.3