From 8a2bb76f1972728e985226cf85cfde34d54b5284 Mon Sep 17 00:00:00 2001
From: yz3456 <2753272399@qq.com>
Date: 星期六, 23 三月 2024 21:51:46 +0800
Subject: [PATCH] 新增家庭模块
---
ruoyi-ui/src/views/secret/index.vue | 326 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 257 insertions(+), 69 deletions(-)
diff --git a/ruoyi-ui/src/views/secret/index.vue b/ruoyi-ui/src/views/secret/index.vue
index 49ba28a..b17def3 100644
--- a/ruoyi-ui/src/views/secret/index.vue
+++ b/ruoyi-ui/src/views/secret/index.vue
@@ -1,11 +1,14 @@
<template>
<div class="app-container" style="opacity: 1;">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
-
+
<el-form-item label="鏃堕棿" prop="happenTime">
<el-date-picker
v-model="dateRange"
- style="width: 240px;"
+ style="width: 240px;
+ height: 35px;
+ border-radius: 16px 16px 16px 16px;
+ opacity: 0.5;"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
@@ -13,20 +16,47 @@
end-placeholder="缁撴潫鏃ユ湡"
></el-date-picker>
</el-form-item>
+
<el-form-item label="绫诲埆" prop="type">
- <el-input
+ <!-- <el-input
v-model="queryParams.type"
placeholder="璇疯緭鍏ョ被鍒�"
clearable
- style="width: 240px"
+ style="width: 200px;
+ height: 35px;
+ border-radius: 16px 16px 16px 16px;
+ opacity: 0.5;"
@keyup.enter.native="handleQuery"
/>
+ -->
+
+ <el-select v-model="queryParams.type" placeholder="璇烽�夋嫨绫诲埆" clearable
+ style="width: 200px;
+ height: 35px;
+ border-radius: 16px 16px 16px 16px;
+ opacity: 0.5;" allow-create
+ filterable clearable :style="{width: '100%'}" >
+ <el-option v-for="(item, index) in typeOpt" :key="index" :label="item.label" :value="item.value"
+ ></el-option>
+ </el-select>
</el-form-item>
<el-form-item label="璐﹀彿" prop="accNo">
<el-input
v-model="queryParams.accNo"
placeholder="璇疯緭鍏ヨ处鍙�"
+ clearable
+ style="width: 200px;
+ height: 35px;
+ border-radius: 16px 16px 16px 16px;
+ opacity: 0.5;"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item label="鏈熼檺" prop="timeLimit">
+ <el-input
+ v-model="queryParams.timeLimit"
+ placeholder="璇疯緭鍏ユ湡闄�"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
@@ -81,7 +111,7 @@
v-hasPermi="['family:note:export']"
>瀵煎叆妯℃澘涓嬭浇</el-button>
</el-col>
- <el-col :span="1.2">
+ <el-col :span="1.5">
<el-upload
action=""
class="upload-demo"
@@ -90,7 +120,7 @@
>
<el-button size="mini" type="primary"
plain
- icon="el-icon-plus" >瀵煎叆</el-button>
+ icon="el-icon-top" >瀵煎叆</el-button>
</el-upload>
</el-col>
@@ -98,15 +128,15 @@
</el-row>
- <el-table v-loading="loading" :data="secretList" :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;">
+ <el-table v-loading="loading" :data="secretList" :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;">
<el-table-column type="selection" :reserve-selection="true" width="55" align="center" />
- <el-table-column label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/>
- <el-table-column label="鍙戠敓鏃堕棿" prop="happenTime" sortable width="100" align="center">
+ <el-table-column fixed label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/>
+ <el-table-column label="鍙戠敓鏃堕棿" prop="happenTime" sortable width="150" align="center">
<template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '鈥斺�斺�斺��'}}</template>
</el-table-column>
<el-table-column label="绫诲埆" prop="type" sortable width="100" />
<el-table-column label="璐﹀彿" prop="accNo" sortable width="100" />
- <el-table-column label="鏈夋晥鏈�" prop="validityDate" sortable width="100" align="center">
+ <el-table-column label="鏈夋晥鏈�" prop="validityDate" sortable width="150" align="center">
<template slot-scope="scope">{{scope.row.validityDate? scope.row.validityDate: '鈥斺�斺�斺��'}}</template>
</el-table-column>
<el-table-column label="瀵嗙爜" prop="password" sortable width="100" />
@@ -117,7 +147,7 @@
<template slot-scope="scope">{{scope.row.isFace===1 ?'鏄�': '鍚�'}}</template>
</el-table-column>
<el-table-column label="绉佹湁/鍏湁" prop="isPrivate" sortable width="100" >
- <template slot-scope="scope">{{scope.row.isFace===1 ?'绉佹湁': '鍏湁'}}</template>
+ <template slot-scope="scope">{{scope.row.isPrivate===1 ?'绉佹湁': '鍏湁'}}</template>
</el-table-column>
<el-table-column label="瀛樻斁浣嶇疆" prop="location" sortable width="100" >
<template slot-scope="scope">{{scope.row.location? scope.row.location: '鈥斺�斺�斺��'}}</template>
@@ -148,8 +178,9 @@
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <el-table-column label="鎿嶄綔" align="center" width="250" class-name="small-padding fixed-width">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
+ <div class="button-container">
<el-button
size="mini"
type="text"
@@ -168,6 +199,7 @@
<el-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)">鏌ョ湅璇︽儏</el-button>
</el-dropdown>
+ </div>
</template>
</el-table-column>
</el-table>
@@ -186,15 +218,19 @@
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
- <el-form-item label="鏃堕棿" prop="happenTime">
- <el-input
- v-model='formDat.happenTime'
- type='date'
- placeholder='閫夋嫨鏃ユ湡'
- ></el-input>
+ <el-form-item label="鍙戠敓鏃堕棿" prop="happenTime">
+ <el-date-picker v-model="formDat.happenTime" type="date" placeholder="璇烽�夋嫨鏃ユ湡"
+ :editable="false" :clearable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd"
+ ></el-date-picker>
</el-form-item>
<el-form-item label="绫诲埆" prop="type">
- <el-input v-model="formDat.type" placeholder="璇疯緭鍏ョ被鍒�" clearable :style="{width: '100%'}" ></el-input>
+
+
+ <el-select v-model="formDat.type" placeholder="璇疯緭鍏ョ被鍒�" allow-create
+ filterable clearable :style="{width: '100%'}" >
+ <el-option v-for="(item, index) in typeOpt" :key="index" :label="item.label" :value="item.value"
+ ></el-option>
+ </el-select>
</el-form-item>
<el-form-item label="璐﹀彿" prop="accNo">
<el-input v-model="formDat.accNo" placeholder="璇疯緭鍏ヨ处鍙�" clearable :style="{width: '100%'}" ></el-input>
@@ -244,10 +280,13 @@
action="#"
list-type="picture-card"
multiple
- :http-request="requestUpload"
- :file-list="fileList"
+ :http-request="requestUpload"
+ :file-list="fileList"
+ :on-change="handleChange"
+ :auto-upload="false"
+ ref="upload"
>
- <i slot="default" class="el-icon-plus"></i>
+ <i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{file}">
<img
class="el-upload-list__item-thumbnail"
@@ -277,6 +316,13 @@
</div>
</el-upload>
+ <el-button
+ style="margin-left: 10px"
+ size="small"
+ type="success"
+
+ @click="picUpload"
+ >涓婁紶鍒版湇鍔″櫒</el-button>
<h4 class="form-header">鍏朵粬闄勪欢 </h4>
<el-upload
action=""
@@ -284,16 +330,60 @@
class="upload-demo"
multiple
- :on-remove="handleRemoveFile"
- :http-request="requestUpload"
- :show-file-list="true"
+ ref="upload1"
+ :on-change="handleChange1"
+ :auto-upload="false"
+ list-type="picture-card"
+ :http-request="requestUpload1"
+ :show-file-list="true"
>
- <el-button type="primary">涓婁紶</el-button>
- <template #tip>
- <div class="el-upload__tip">
- </div>
- </template>
- </el-upload>
+
+
+ <i slot="default" class="el-icon-plus"></i>
+ <div slot="file" slot-scope="{file}">
+ <!-- 娣诲姞video鍏冪礌鐢ㄤ簬鏄剧ず瑙嗛 -->
+ <video
+ v-if="file.url.includes('.mp4')"
+ class="el-upload-list__item-thumbnail"
+ :src="file.url"
+ style="width: 147px; height: 147px"
+ fit="cover"
+ ></video>
+ <img v-else
+ class="el-upload-list__item-thumbnail"
+ :src="file.url"
+ alt=""
+ style="width: 100%; height: 100%"
+ fit="cover"></img>
+
+ <span class="el-upload-list__item-actions">
+ <span class="el-upload-list__item-name">{{ file.name }}</span>
+ <span
+ class="el-upload-list__item-preview"
+ @click="handleFileCardPreview(file)"
+ >
+ <i class="el-icon-zoom-in"></i>
+ </span>
+
+ <span
+
+ class="el-upload-list__item-delete"
+ @click="handleRemoveFile(file)"
+ >
+ <i class="el-icon-delete"></i>
+ </span>
+ </span>
+
+ </div>
+
+
+ </el-upload>
+ <el-button
+ style="margin-left: 10px"
+ size="small"
+ type="success"
+ @click="fileUpload"
+ >涓婁紶鍒版湇鍔″櫒</el-button>
</el-form>
<h4 class="form-header"> </h4>
@@ -319,7 +409,7 @@
//鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁� --鎺ュソ浜�
- import {listSecret,enload,delSecret, addSecret, uploadPic} from "@/api/secret/index";
+ import {listSecret,enload,delSecret, addSecret, uploadPic,getCategory} from "@/api/secret/index";
export default {
name: "Role",
@@ -355,14 +445,19 @@
// 鏃ユ湡鑼冨洿
dateRange: [],
// 鏁版嵁鑼冨洿閫夐」
- fot:[".jpg",".jif"],
+ // 鏁版嵁鑼冨洿閫夐」
+ fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx',
+ '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'],
+
fileList:[
],
- fileListOther:[
-
- ],
+ fileList1:[],
+ uploadFileList: [],
+ uploadFileList1: [],
+ fileListOther:[],
dsb:true,
btn:false,
+ uploading: false,
formDat: {
type: undefined,
happenTime: undefined,
@@ -374,7 +469,7 @@
isPrivate:undefined,
location:undefined,
remark: undefined,
- url: undefined,
+ url: "",
},
// 鑿滃崟鍒楄〃
menuOptions: [],
@@ -387,7 +482,7 @@
type:undefined,
accNo:undefined,
happenTime:undefined,
- useFor:undefined,
+ timeLimit:undefined,
},
// 琛ㄥ崟鍙傛暟
@@ -463,16 +558,36 @@
value: '1',
label: '绉佹湁',
}
+ ],
+ typeOpt: [
+
]
};
},
created() {
this.getList();
- this.getCateInfor()
+ this.getCateInfo();
+
},
methods: {
-
+ getCateInfo()
+ {
+ let _this = this
+ _this.typeOpt = []
+
+ getCategory().then(response=>{
+ console.log(response.data)
+ // alert(9801)
+
+ response.data.map(elem=>{
+ _this.typeOpt.push({"label":elem, "value":elem})
+ })
+ // response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
+ // _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
+ // })
+ })
+ },
//鍩洪噾/鍙拌处鐨勯�夋嫨
getSrc1(type) {
if (type === 0) {
@@ -529,14 +644,20 @@
for(let i = 0; i < this.fileList.length; i++)
{
if(this.fileList[i].url==file.url)
+ {
this.$delete(this.fileList,i);
+ this.$delete(this.uploadFileList,i);
+ }
}
},
handleRemoveFile(file) {
for(let i = 0; i < this.fileListOther.length; i++)
{
if(this.fileListOther[i].url==file.url)
+ {
this.$delete(this.fileListOther,i);
+ this.$delete(this.uploadFileList1,i);
+ }
}
},
@@ -582,6 +703,7 @@
this.queryParams.pageNum = 1;
this.getList();
},
+
/** 閲嶇疆鎸夐挳鎿嶄綔 */
resetQuery() {
this.dateRange = [];
@@ -630,13 +752,13 @@
/** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
submitDataScope: function() {
- let ul = this.fileList.map(function (elem){
- return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
- }).join(",")
- let uls = this.fileListOther.map(function (elem){
- return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
- }).join(",")
- this.formDat.url = ul+","+uls
+ // let ul = this.fileList.map(function (elem){
+ // return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+ // }).join(",")
+ // let uls = this.fileListOther.map(function (elem){
+ // return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+ // }).join(",")
+ // this.formDat.url = ul+","+uls
this.$refs["elForm"].validate(valid => {
if (valid) {
@@ -659,29 +781,89 @@
this.handleRemoveFile(this.fileListOther[0]);
}
},
- requestUpload(params)
- {
- var file = params.file;
- var formData = new FormData();
- formData.append('uploadFile', file);
- let _this = this
-
- uploadPic(formData).then(response => {
- let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
-
- if(_this.fot.includes(pth) === true)
+
+ handleChange(file, fileList1) {
+ //瀹氫箟涓�涓叏灞�鏁扮粍uploadFileList鏉ュ仛瀛樺偍
+
+ // this.uploadFileList.push(file.raw);
+ console.log("=========5555=========")
+ console.log(file)
+ // console.log(this.uploadFileList)
+ // this.fileList = fileList
+ //alert(file)
+ this.uploadFileList.push(file.raw);
+ this.fileList.push({name:file.name,url:file.url})
+ //alert(fileList1.length)
+ },
+ handleChange1(file, fileOtherList1) {
+ //瀹氫箟涓�涓叏灞�鏁扮粍uploadFileList鏉ュ仛瀛樺偍
+ this.uploadFileList1.push(file.raw);
+ this.fileListOther.push({name:file.name,url:file.url})
+ // this.uploadFileList.push(file.raw);
+ console.log("=========5555=========")
+ //console.log(file)
+ // console.log(this.uploadFileList)
+ // this.fileList = fileList
+ },
+ fileUpload(){
+ // var file = params.file;
+
+ var formData = new FormData();
+ this.$refs.upload1.submit();
+ // formData.append('uploadFile', file);
+ if(this.uploadFileList1.length==0){
+ this.$modal.msgSuccess("鏂囨。涓婁紶鍒楄〃涓嶈兘涓虹┖!");
+ return
+ }
+ this.uploadFileList1.forEach((elem)=>{
+ formData.append("files", elem)
+
+ })
+
+ let _this = this
+
+ this.uploading = true;
+ uploadPic(formData).then(response => {
+ _this.uploadFileList1 = []
+ _this.formDat.url = _this.formDat.url+","+response.fileNames
+ _this.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛!");
+ })
+
+ },
+ picUpload()
+ {
+ var formData = new FormData();
+ //alert(976)
+ //this.$refs.upload.submit();
+ //alert(8)
+ //alert(this.uploadFileList.length)
+ if(this.uploadFileList.length==0){
+ this.$modal.msgSuccess("鍥剧墖涓婁紶鍒楄〃涓嶈兘涓虹┖锛�");
+ return}
+ //console.log(this.uploadFileList)
+ this.uploadFileList.forEach((elem)=>{
+ formData.append("files", elem)
+
+ })
+ //alert(90)
+ let _this = this
+ //alert(9)
+ uploadPic(formData).then(response => {
+ // alert("dds")
+ _this.formDat.url = _this.formDat.url+","+response.fileNames
+ _this.uploadFileList = []
+ _this.$modal.msgSuccess("鍥剧墖涓婁紶鎴愬姛");
+
+ });
+ },
+ requestUpload(params) {
+ //alert(98)
+ // this.uploadFileList.push(params.file);
+ },
+ requestUpload1(params)
{
- _this.fileList.push({name:response.data.fileName, "url":response.data.url})
-
- }
-
- else{
- _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
-
- }
- })
-
- },
+ // this.uploadFileList1.push(params.file);
+ },
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
const Ids = row.id || this.ids;
@@ -744,4 +926,10 @@
background: #FFEFF2;
}
+ .el-table__cell {
+ font-size: 14px; /* 璁剧疆瀛椾綋澶у皬 */
+ }
+ .button-container {
+ display: inline-flex; /* 璁剧疆鎸夐挳瀹瑰櫒涓鸿鍐呭厓绱� */
+ }
</style>
--
Gitblit v1.9.1