From d7f140b91b514c9ed36361552c2c627730f086d0 Mon Sep 17 00:00:00 2001
From: linwenling <3256558519@qq.com>
Date: 星期日, 02 四月 2023 13:50:47 +0800
Subject: [PATCH] 4.2
---
ruoyi-ui/bin/新建文本文档.txt | 0
ruoyi-ui/src/store/modules/permission.js | 1
ruoyi-ui/src/utils/ruoyi.js | 1
ruoyi-ui/src/App.vue | 3
ruoyi-ui/src/views/bignote/index.vue | 516 ++++++++++++++
ruoyi-ui/src/views/system/role/index.vue | 349 +++++++++
ruoyi-ui/target/npmlist.json | 1
ruoyi-ui/vue.config.js | 30
ruoyi-ui/src/views/bignote/familyeventInfo.vue | 363 ++++++++++
ruoyi-ui/src/views/system/user/index.vue | 324 +++++++++
ruoyi-ui/src/views/tmp.vue | 12
ruoyi-ui/src/store/modules/settings.js | 2
ruoyi-ui/src/utils/request.js | 12
ruoyi-ui/.env.production | 2
ruoyi-ui/.env.staging | 2
ruoyi-ui/package.json | 3
ruoyi-ui/src/api/bignote/index.js | 76 ++
ruoyi-ui/src/views/note/propertyInfo.vue | 362 ++++++++++
ruoyi-ui/.env.development | 4
ruoyi-ui/src/api/login.js | 15
ruoyi-ui/src/router/index.js | 37 +
21 files changed, 2,082 insertions(+), 33 deletions(-)
diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development
index 73916eb..47d11c2 100644
--- a/ruoyi-ui/.env.development
+++ b/ruoyi-ui/.env.development
@@ -1,5 +1,5 @@
# 椤甸潰鏍囬
-VUE_APP_TITLE = 寮犳皬APP
+VUE_APP_TITLE = 鑻ヤ緷绠$悊绯荤粺
# 寮�鍙戠幆澧冮厤缃�
ENV = 'development'
@@ -7,5 +7,7 @@
# 鑻ヤ緷绠$悊绯荤粺/寮�鍙戠幆澧�
VUE_APP_BASE_API = '/dev-api'
+
+VUE_APP_BASE_TRUE_API = 'http://47.93.189.255:8080/'
# 璺敱鎳掑姞杞�
VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production
index c67c673..b4893b0 100644
--- a/ruoyi-ui/.env.production
+++ b/ruoyi-ui/.env.production
@@ -1,5 +1,5 @@
# 椤甸潰鏍囬
-VUE_APP_TITLE = 寮犳皬APP
+VUE_APP_TITLE = 鑻ヤ緷绠$悊绯荤粺
# 鐢熶骇鐜閰嶇疆
ENV = 'production'
diff --git a/ruoyi-ui/.env.staging b/ruoyi-ui/.env.staging
index 8bbead1..361859f 100644
--- a/ruoyi-ui/.env.staging
+++ b/ruoyi-ui/.env.staging
@@ -1,5 +1,5 @@
# 椤甸潰鏍囬
-VUE_APP_TITLE = 寮犳皬APP
+VUE_APP_TITLE = 鑻ヤ緷绠$悊绯荤粺
NODE_ENV = production
diff --git "a/ruoyi-ui/bin/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt" "b/ruoyi-ui/bin/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/ruoyi-ui/bin/\346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt"
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
index 26b9eea..d3fbe25 100644
--- a/ruoyi-ui/package.json
+++ b/ruoyi-ui/package.json
@@ -1,7 +1,7 @@
{
"name": "ruoyi",
"version": "3.8.5",
- "description": "寮犳皬APP",
+ "description": "鑻ヤ緷绠$悊绯荤粺",
"author": "鑻ヤ緷",
"license": "MIT",
"scripts": {
@@ -49,7 +49,6 @@
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"nprogress": "0.2.0",
- "postcss-px2rem": "^0.3.0",
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
diff --git a/ruoyi-ui/src/App.vue b/ruoyi-ui/src/App.vue
index 29de49f..dfa62fe 100644
--- a/ruoyi-ui/src/App.vue
+++ b/ruoyi-ui/src/App.vue
@@ -1,6 +1,9 @@
<template>
<div id="app">
<router-view />
+
+
+
<theme-picker />
</div>
</template>
diff --git a/ruoyi-ui/src/api/bignote/index.js b/ruoyi-ui/src/api/bignote/index.js
new file mode 100644
index 0000000..5bad6ab
--- /dev/null
+++ b/ruoyi-ui/src/api/bignote/index.js
@@ -0,0 +1,76 @@
+import request from '@/utils/request'
+
+// Familyevent
+
+// 鏌ヨ鎵�鏈夊搴ぇ浜嬶紝鍒嗛〉鏌ヨ
+export function listFamilyevent(query) {
+ return request({
+ url: '/family/zfEvent/all',
+ method: 'get',
+ params: query
+ })
+}
+
+// 鏍规嵁id鏌ヨ鎵�鏈夊搴祫浜ц缁嗕俊鎭�
+export function getFamilyeventInfo(id) {
+ return request({
+ url: '/family/zfEvent/{id}' + id,
+ method: 'get',
+
+ })
+}
+
+//澧炲姞璧勪骇淇℃伅
+export function addFamilyevent(data)
+{
+ return request({
+ url: '/family/zfEvent',
+ method: 'post',
+ data: data
+ })
+}
+
+// 鍒犻櫎璧勪骇淇℃伅
+export function delFamilyevent(Ids) {
+ return request({
+ url: '/family/zfEvent/' + Ids,
+ method: 'delete'
+ })
+}
+//淇敼瀹跺ぇ浜嬭
+export function updateFamilyevent(data) {
+ return request({
+ url: '/family/zfEvent',
+ method: 'put',
+ data: data
+ })
+}
+//涓婁紶鏂囦欢
+export function uploadPic(data) {
+ return request({
+ url: '/common/upload',
+ method: 'post',
+ data: data
+ })
+}
+//涓嬭浇鏂囦欢
+export function download(data) {
+ return request({
+ url: '/common/downLoadFile',
+ method: 'get',
+ params: data,
+ responseType: 'blob'
+ })
+}
+
+// //鎷垮埌绫诲埆
+// export function getCategory()
+// {
+// return request({
+// url: '/zDict/byId',
+// method: 'get',
+// params: {'id':22}
+// })
+// }
+
+
diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js
index 649f59c..06c8b1b 100644
--- a/ruoyi-ui/src/api/login.js
+++ b/ruoyi-ui/src/api/login.js
@@ -8,6 +8,8 @@
code,
uuid
}
+
+
return request({
url: '/login',
headers: {
@@ -48,6 +50,19 @@
// 鑾峰彇楠岃瘉鐮�
export function getCodeImg() {
+ console.log("-----")
+ return request({
+ url: '/captchaImage',
+ headers: {
+ isToken: false
+ },
+ method: 'get',
+ timeout: 20000
+ })
+}
+
+// 鑾峰彇楠岃瘉鐮�
+export function getCodeImg() {
return request({
url: '/captchaImage',
headers: {
diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
index 3281ddb..1f34a9d 100644
--- a/ruoyi-ui/src/router/index.js
+++ b/ruoyi-ui/src/router/index.js
@@ -57,6 +57,11 @@
hidden: true
},
{
+ path: '/tmps',
+ component: () => import('@/views/tmp'),
+ hidden: true
+ },
+ {
path: '/401',
component: () => import('@/views/error/401'),
hidden: true
@@ -72,9 +77,9 @@
name: 'Index',
meta: { title: '棣栭〉', icon: 'dashboard', affix: true }
}
+
]
},
-
{
path: '/user',
component: Layout,
@@ -107,6 +112,36 @@
}
]
},
+ {
+ path: '/family/note1',
+ component: Layout,
+ permissions: ['family:note:list'],
+
+ hidden: true,
+ children: [
+ {
+ path: 'propertyInfo/:id(\\d+)',
+ component: () => import('@/views/note/propertyInfo'),
+ name: 'propertyInfo',
+ meta: { title: '鏌ヨ璇︽儏'}
+ }
+ ]
+ },
+//瀹跺ぇ浜嬭鐨勮鎯�
+ {
+ path: '/family1/bignote',
+ component: Layout,
+ // permissions: [],
+ hidden: true,
+ children: [
+ {
+ path: 'familyeventInfo/:id(\\d+)',
+ component: () => import('@/views/bignote/familyeventInfo'),
+ name: 'familyeventInfo',
+ meta: { title: '鏌ヨ璇︽儏'}
+ }
+ ]
+ },
{
path: '/system/role-auth',
component: Layout,
diff --git a/ruoyi-ui/src/store/modules/permission.js b/ruoyi-ui/src/store/modules/permission.js
index 2287665..ca5e858 100644
--- a/ruoyi-ui/src/store/modules/permission.js
+++ b/ruoyi-ui/src/store/modules/permission.js
@@ -123,6 +123,7 @@
export const loadView = (view) => {
if (process.env.NODE_ENV === 'development') {
+
return (resolve) => require([`@/views/${view}`], resolve)
} else {
// 浣跨敤 import 瀹炵幇鐢熶骇鐜鐨勮矾鐢辨噿鍔犺浇
diff --git a/ruoyi-ui/src/store/modules/settings.js b/ruoyi-ui/src/store/modules/settings.js
index 8bff7b7..2455a1e 100644
--- a/ruoyi-ui/src/store/modules/settings.js
+++ b/ruoyi-ui/src/store/modules/settings.js
@@ -4,7 +4,7 @@
const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
const state = {
- title: '寮犳皬APP',
+ title: '',
theme: storageSetting.theme || '#409EFF',
sideTheme: storageSetting.sideTheme || sideTheme,
showSettings: showSettings,
diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js
index ad9923c..ad0bf7b 100644
--- a/ruoyi-ui/src/utils/request.js
+++ b/ruoyi-ui/src/utils/request.js
@@ -17,7 +17,7 @@
// axios涓姹傞厤缃湁baseURL閫夐」锛岃〃绀鸿姹俇RL鍏叡閮ㄥ垎
baseURL: process.env.VUE_APP_BASE_API,
// 瓒呮椂
- timeout: 10000
+ timeout: 1000000
})
// request鎷︽埅鍣�
@@ -32,9 +32,16 @@
// get璇锋眰鏄犲皠params鍙傛暟
if (config.method === 'get' && config.params) {
let url = config.url + '?' + tansParams(config.params);
+
+
url = url.slice(0, -1);
config.params = {};
config.url = url;
+ if(config.responseType!=undefined)
+ {
+ config.responseType='blob'
+ }
+ config.headers['Content-Type']= 'application/json'
}
if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
const requestObj = {
@@ -62,6 +69,7 @@
return config
}, error => {
console.log(error)
+
Promise.reject(error)
})
@@ -69,6 +77,8 @@
service.interceptors.response.use(res => {
// 鏈缃姸鎬佺爜鍒欓粯璁ゆ垚鍔熺姸鎬�
const code = res.data.code || 200;
+
+
// 鑾峰彇閿欒淇℃伅
const msg = errorCode[code] || res.data.msg || errorCode['default']
// 浜岃繘鍒舵暟鎹垯鐩存帴杩斿洖
diff --git a/ruoyi-ui/src/utils/ruoyi.js b/ruoyi-ui/src/utils/ruoyi.js
index 243c4c7..6b9a0f2 100644
--- a/ruoyi-ui/src/utils/ruoyi.js
+++ b/ruoyi-ui/src/utils/ruoyi.js
@@ -232,6 +232,7 @@
try {
const text = await data.text();
JSON.parse(text);
+ alert(text)
return false;
} catch (error) {
return true;
diff --git a/ruoyi-ui/src/views/bignote/familyeventInfo.vue b/ruoyi-ui/src/views/bignote/familyeventInfo.vue
new file mode 100644
index 0000000..2bcb7ed
--- /dev/null
+++ b/ruoyi-ui/src/views/bignote/familyeventInfo.vue
@@ -0,0 +1,363 @@
+<template>
+ <div class="app-container">
+ <div class="form-header mt">
+ <h4 class="dt h4">瀹跺涵澶т簨璁拌鎯� </h4>
+ <el-button type="primary" class="pt" icon="el-icon-edit" @click="handleEdit()" :disabled="btn">缂栬緫</el-button>
+ </div>
+
+ <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
+ <el-form-item label="id" prop="id">
+ <el-input v-model="formData.id" placeholder="璇疯緭鍏d" :maxlength="11" show-word-limit :disabled="true"
+ clearable prefix-icon='el-icon-mobile' :style="{width: '100%'}"></el-input>
+ </el-form-item>
+ <!-- <el-form-item label="绫诲埆" prop="type">
+ <el-select v-model="formData.type" placeholder="璇烽�夋嫨绫诲埆" clearable :style="{width: '100%'}" :disabled="dsb" >
+ <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
+ :disabled="item.disabled"></el-option>
+ </el-select>
+ </el-form-item> -->
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="formData.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+ </el-form-item>
+ <!-- <el-form-item label="瀛樺偍鍦板潃" prop="location">
+ <el-input v-model="formData.location" placeholder="璇疯緭鍏ュ瓨鍌ㄥ湴鍧�" clearable :style="{width: '100%'}" :disabled="dsb">
+ </el-input>
+ </el-form-item> -->
+ <el-form-item label="浜虹墿" prop="people">
+ <el-input v-model="formData.holder" placeholder="璇疯緭鍏ヤ汉鐗�" clearable :style="{width: '100%'}" :disabled="dsb">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="鍦扮偣" prop="address">
+ <el-input v-model="formData.address" placeholder="璇疯緭鍏ュ湴鐐�" clearable :style="{width: '100%'}" :disabled="dsb">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+ </el-form-item>
+
+ <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
+ <el-upload
+ action="#"
+ list-type="picture-card"
+ multiple
+ :http-request="requestUpload"
+ :file-list="fileList"
+ >
+ <i slot="default" class="el-icon-plus"></i>
+ <div slot="file" slot-scope="{file}">
+ <img
+ class="el-upload-list__item-thumbnail"
+ :src="file.url"
+ alt=""
+ style="width: 147px; height: 147px"
+ fit="cover"
+ :preview-src-list="[file.url]"
+ >
+ <span class="el-upload-list__item-actions">
+ <span
+ class="el-upload-list__item-preview"
+ @click="handlePictureCardPreview(file)"
+ >
+ <i class="el-icon-zoom-in"></i>
+ </span>
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleDownload(file.url)"
+ >
+ <i class="el-icon-download"></i>
+ </span>
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleRemove(file)"
+ >
+ <i class="el-icon-delete"></i>
+ </span>
+ </span>
+
+
+ </div>
+ </el-upload>
+
+ <h4 class="form-header">鍏朵粬闄勪欢 </h4>
+ <el-upload
+ action=""
+ :file-list="fileListOther"
+ class="upload-demo"
+ multiple
+ :on-preview="handlePreview"
+
+ :on-remove="handleRemove"
+ :http-request="requestUpload"
+ :show-file-list="true"
+ >
+ <el-button type="primary">Click to upload</el-button>
+ <template #tip>
+ <div class="el-upload__tip">
+ </div>
+ </template>
+
+
+ </el-upload>
+
+ <el-form-item size="large">
+ <el-button type="primary" @click="submitForm" :disabled="dsb">淇敼</el-button>
+ </el-form-item>
+ </el-form>
+
+ <el-dialog :visible.sync="dialogVisible">
+ <img w-full :src="dialogImageUrl" alt="Preview Image" />
+ </el-dialog>
+ </div>
+ </template>
+ <script>
+ import {getFamilyeventInfo, updateFamilyevent, uploadPic, download} from "@/api/bignote/index";
+ import {addRole, updateRole} from "@/api/system/role";
+ import {blobValidate} from "@/utils/ruoyi";
+ import errorCode from "@/utils/errorCode";
+ import {Message} from "element-ui";
+
+ export default {
+ components: {},
+ props: [],
+ data() {
+ return {
+ cdi:"瀹跺涵澶т簨璁颁俊鎭�",
+ udi:"瀹跺涵澶т簨璁颁慨鏀�",
+ fot:[".jpg",".jif"],
+ fileList:[
+ ],
+ fileListOther:[
+
+ ],
+ dsb:true,
+ btn:false,
+ formData: {
+ id: undefined,
+ // type: undefined,
+ title: undefined,
+ // location: undefined,
+ people: undefined,
+ address: undefined,
+ remark: undefined,
+ url: undefined,
+ },
+ dialogImageUrl: '',
+ dialogVisible: false,
+ disabled: false,
+ rules: {
+ id: [{
+ required: true,
+ message: '璇疯緭鍏d',
+ trigger: 'blur'
+ }],
+ // type: [{
+ // required: true,
+ // message: '璇烽�夋嫨绫诲埆',
+ // trigger: 'change'
+ // }],
+ title: [{
+ required: true,
+ message: '璇疯緭鍏ュぇ浜嬫爣棰�',
+ trigger: 'blur'
+ }],
+ // location: [{
+ // required: true,
+ // message: '璇疯緭鍏ュ瓨鍌ㄥ湴鍧�',
+ // trigger: 'blur'
+ // }],
+ people: [{
+ required: true,
+ message: '璇疯緭鍏ヤ汉鐗�',
+ trigger: 'blur'
+ }],
+ address: [{
+ required: true,
+ message: '璇疯緭鍏ュ湴鐐�',
+ trigger: 'blur'
+ }],
+ remark: [{
+ required: true,
+ message: '璇疯緭鍏ュ娉�',
+ trigger: 'blur'
+ }],
+
+ },
+ typeOptions: [],
+ }
+ },
+ computed: {},
+ watch: {},
+ created() {
+ const id = this.$route.params && this.$route.params.id;
+ let jd;
+ if(this.$route.query.detail!=undefined)
+ {
+ jd = this.$route.query.detail
+ this.btn= jd
+ this.dsb = !jd
+ document.title = "淇敼瀹跺ぇ浜嬭璇︾粏淇℃伅";
+ this.$route.meta.title = "淇敼瀹跺ぇ浜嬭璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
+ }
+ else{
+ document.title = "鏌ョ湅瀹跺ぇ浜嬭璇︾粏淇℃伅";
+ this.$route.meta.title = "鏌ョ湅瀹跺ぇ浜嬭璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
+ }
+
+ let _this = this
+ if (id) {
+ this.loading = true;
+ getFamilyeventInfo(id).then((response) => {
+ this.formData = response.data;
+ let paths = response.data.url.split(",");
+ for(let i = 0; i < paths.length; i++)
+ {
+ if(paths[i]!="") {
+
+ let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
+
+ if (_this.fot.includes(pth) === true)
+ _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
+ else {
+ // alert(paths[i])
+ let nms = paths[i].split("\/")
+ let nm = nms[nms.length - 1]
+ _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
+ }
+ }
+ }
+ this.loading = false;
+ });
+ // this.getCateInfor()
+
+ }
+ },
+ mounted() {},
+ methods: {
+ /** 鏌ヨ绫诲埆淇℃伅 */
+ // getCateInfor()
+ // {
+ // let _this = this
+ // getCategory().then(response=>{
+
+ // response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
+ // _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
+ // })
+ // })
+ // },
+ submitForm() {
+ 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.formData.url = ul+","+uls
+
+ this.$refs['elForm'].validate(valid => {
+
+
+ if (valid) {
+ if (this.formData.id != undefined) {
+ updateFamilyevent(this.formData).then(response => {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ // this.open = false;
+ this.btn=false
+ });
+ } else {
+ this.$modal.msgSuccess("淇敼澶辫触");
+
+ }
+ }
+ })
+ },
+ resetForm() {
+ this.$refs['elForm'].resetFields()
+ },
+ handlePreview(file)
+ {
+ let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+ let lens = formData.path.split(".")
+ let suffix = lens[lens.length-1]
+ download(formData).then(async (response) => {
+ const isLogin = await blobValidate(response);
+ let nt = new Date().getTime()
+ let filename = 'familyevent_'+nt+'.'+suffix
+ const blob = new Blob([response])
+ saveAs(blob, filename)
+ })
+ },
+ handleRemoveFile(file) {
+ alert(23)
+ },
+ handleRemove(file) {
+ alert(323)
+ },
+ handlePictureCardPreview(file) {
+ this.dialogImageUrl = file.url;
+ this.dialogVisible = true;
+ },
+ handleDownload(url) {
+ var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+
+ let lens = formData.path.split(".")
+ let suffix = lens[lens.length-1]
+ download(formData).then(async (response) => {
+ const isLogin = await blobValidate(response);
+ let nt = new Date().getTime()
+ let filename = 'property_'+nt+'.'+suffix
+ const blob = new Blob([response])
+ saveAs(blob, filename)
+ })
+ },
+ handleEdit()
+ {
+ this.dsb = false
+ this.btn = true
+ },
+ 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)
+ {
+ _this.fileList.push({name:response.data.fileName, "url":response.data.url})
+
+ }
+
+ else{
+ _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
+
+ }
+ })
+
+ }
+
+ }
+ }
+
+ </script>
+ <style>
+ .mt
+ {
+ position: relative;
+ }
+ .dt{
+ display: block;
+
+ }
+ .pt{
+ right: 10px;
+ top:-3px;
+ display: block;
+ position: absolute;
+ }
+ </style>
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/bignote/index.vue b/ruoyi-ui/src/views/bignote/index.vue
new file mode 100644
index 0000000..b4eeb2f
--- /dev/null
+++ b/ruoyi-ui/src/views/bignote/index.vue
@@ -0,0 +1,516 @@
+<template>
+ <div class="app-container">
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+
+ <el-form-item label="澶т簨鏍囬" prop="title">
+ <el-input
+ v-model="queryParams.title"
+ placeholder="璇疯緭鍏ユ爣棰�"
+ clearable
+ style="width: 240px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+
+ <el-form-item label="浜虹墿" prop="people">
+ <el-input
+ v-model="queryParams.people"
+ placeholder="璇疯緭鍏ヤ汉鐗�"
+ clearable
+ style="width: 240px"
+ @keyup.enter.native="handleQuery"
+ />
+ </el-form-item>
+ <el-form-item label="鍦扮偣" prop="address">
+ <el-input
+ v-model="queryParams.address"
+ placeholder="璇疯緭鍏ュ湴鐐�"
+ clearable
+ style="width: 240px"
+ @keyup.enter.native="handleQuery"
+ />
+
+ </el-form-item>
+ <el-form-item label="鏃堕棿">
+ <el-date-picker
+ v-model="dateRange"
+ style="width: 240px"
+ value-format="yyyy-MM-dd HH-MM"
+ type="daterange"
+ range-separator="-"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ ></el-date-picker>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+
+ <el-row :gutter="10" class="mb8">
+ <el-col :span="1.5">
+ <el-button
+ type="primary"
+ plain
+ icon="el-icon-plus"
+ size="mini"
+ @click="handleAdd"
+ v-hasPermi="['system:role:add']"
+ >鏂板</el-button>
+ </el-col>
+
+ <el-col :span="1.5">
+ <el-button
+ type="danger"
+ plain
+ icon="el-icon-delete"
+ size="mini"
+ :disabled="multiple"
+ @click="handleDelete"
+ v-hasPermi="['system:role:remove']"
+ >鍒犻櫎</el-button>
+ </el-col>
+ <el-col :span="1.5">
+ <el-button
+ type="warning"
+ plain
+ icon="el-icon-download"
+ size="mini"
+ @click="handleExport"
+ v-hasPermi="['family:note:export']"
+ >瀵煎嚭</el-button>
+ </el-col>
+ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+ </el-row>
+ <!-- 搴忓彿銆佹椂闂淬�佷汉鐗┿�佸湴鐐广�佸ぇ浜嬫爣棰樸�佺數瀛愭枃浠躲�佸娉� -->
+ <!-- 杩欓噷鏈変釜familyList鏁扮粍 鏄湪data()涓畾涔夌殑 -->
+ <el-table v-loading="loading" :data="familyList" @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="55" align="center" />
+ <el-table-column label="搴忓彿" prop="id" sortable width="120" />
+
+ <el-table-column label="鏃堕棿" align="center" sortable prop="createTime" width="180">
+ <template slot-scope="scope">
+ <span>{{ parseTime(scope.row.createTime) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="浜虹墿" prop="people" sortable width="100" />
+ <el-table-column label="鍦扮偣" prop="address" sortable width="100" />
+ <el-table-column label="澶т簨鏍囬" prop="title" sortable :show-overflow-tooltip="true" width="150" />
+
+ <el-table-column label="澶囨敞" prop="remark" sortable width="100" />
+ <el-table-colum label="鐢靛瓙鏂囦欢" prop="fujian" sortable width="100"/>
+ <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+ <template slot-scope="scope" v-if="scope.row.roleId !== 1">
+ <el-button
+ size="mini"
+ type="text"
+ icon="el-icon-edit"
+ @click="handleUpdate(scope.row)"
+ v-hasPermi="['system:role:edit']"
+ >淇敼</el-button>
+ <el-button
+ size="mini"
+ type="text"
+ icon="el-icon-delete"
+ @click="handleDelete(scope.row)"
+ v-hasPermi="['system:role:remove']"
+ >鍒犻櫎</el-button>
+ <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']">
+ <el-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)">鏌ョ湅璇︽儏</el-button>
+
+ </el-dropdown>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total>0"
+ :total="total"
+ :page.sync="queryParams.pageNum"
+ :limit.sync="queryParams.pageSize"
+ @pagination="getList"
+ />
+
+ <!-- 娣诲姞鎴栦慨鏀硅祫浜т俊鎭厤缃璇濇 -->
+ <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="title">
+ <el-input v-model="formDat.title" placeholder="璇疯緭鍏ュぇ浜嬫爣棰�" clearable :style="{width: '100%'}" ></el-input>
+ </el-form-item>
+
+ <el-form-item label="浜虹墿" prop="people">
+ <el-input v-model="formDat.holder" placeholder="璇疯緭鍏ヤ汉鐗�" clearable :style="{width: '100%'}" >
+ </el-input>
+ </el-form-item>
+ <el-form-item label="鍦扮偣" prop="address">
+ <el-input v-model="formDat.address" placeholder="璇疯緭鍏ュ湴鐐�" clearable :style="{width: '100%'}" >
+ </el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="formDat.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" ></el-input>
+ </el-form-item>
+
+ <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
+ <el-upload
+ action="#"
+ list-type="picture-card"
+ multiple
+ :http-request="requestUpload"
+ :file-list="fileList"
+ >
+ <i slot="default" class="el-icon-plus"></i>
+ <div slot="file" slot-scope="{file}">
+ <img
+ class="el-upload-list__item-thumbnail"
+ :src="file.url"
+ alt=""
+ style="width: 126px; height: 126px"
+ fit="cover"
+ :preview-src-list="[file.url]"
+ >
+ <span class="el-upload-list__item-actions">
+ <span
+ class="el-upload-list__item-preview"
+ @click="handlePictureCardPreview(file)"
+ >
+ <i class="el-icon-zoom-in"></i>
+ </span>
+
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleRemove(file)"
+ >
+ <i class="el-icon-delete"></i>
+ </span>
+ </span>
+
+
+ </div>
+ </el-upload>
+ <h4 class="form-header">鍏朵粬闄勪欢 </h4>
+ <el-upload
+ action=""
+ :file-list="fileListOther"
+ class="upload-demo"
+ multiple
+
+ :on-remove="handleRemove"
+ :http-request="requestUpload"
+ :show-file-list="true"
+ >
+ <el-button type="primary">Click to upload</el-button>
+ <template #tip>
+ <div class="el-upload__tip">
+ </div>
+ </template>
+ </el-upload>
+
+ </el-form>
+ <h4 class="form-header"> </h4>
+
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="submitDataScope">纭� 瀹�</el-button>
+ <el-button @click="cancelData">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
+
+ <!-- 鍒嗛厤瑙掕壊鏁版嵁鏉冮檺瀵硅瘽妗� -->
+ <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
+
+ </el-dialog>
+
+ </div>
+ </template>
+
+ <script>
+ import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
+ import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
+
+
+
+ //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁� --鎺ュソ浜�
+ import {listFamilyevent , getFamilyeventInfo , delFamilyevent , addFamilyevent , uploadPic} from "@/api/bignote/index";
+ export default {
+ name: "Role",
+ dicts: ['sys_normal_disable'],
+ data() {
+ return {
+ // 閬僵灞�
+ disabled: false,
+
+ loading: true,
+ formData:[],
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 闈炲崟涓鐢�
+ single: true,
+ // 闈炲涓鐢�
+ multiple: true,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 瀹跺ぇ浜嬭琛ㄦ牸鏁版嵁
+ familyList: [],
+ // 寮瑰嚭灞傛爣棰�
+ title: "",
+ // 鏄惁鏄剧ず寮瑰嚭灞�
+ open: false,
+ // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+ openDataScope: false,
+ menuExpand: false,
+ menuNodeAll: false,
+ deptExpand: true,
+ deptNodeAll: false,
+ // 鏃ユ湡鑼冨洿
+ dateRange: [],
+ // 鏁版嵁鑼冨洿閫夐」
+ fot:[".jpg",".jif"],
+ fileList:[
+ ],
+ fileListOther:[
+
+ ],
+ dsb:true,
+ btn:false,
+ formDat: {
+ type: undefined,
+ title: undefined,
+ location: undefined,
+ holder: undefined,
+ address: undefined,
+ remark: undefined,
+ url: undefined,
+ },
+ // 鑿滃崟鍒楄〃
+ menuOptions: [],
+ // 閮ㄩ棬鍒楄〃
+ deptOptions: [],
+ // 鏌ヨ鍙傛暟
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ title:undefined,
+ people:undefined,
+ address:undefined,
+ createTime:undefined
+ },
+ // 琛ㄥ崟鍙傛暟
+ form: {},
+ defaultProps: {
+ children: "children",
+ label: "label"
+ },
+ // 琛ㄥ崟鏍¢獙
+ rules: {
+ title: [{
+ required: true,
+ message: '璇疯緭鍏ュぇ浜嬫爣棰�',
+ trigger: 'blur'
+ }],
+
+ people: [{
+ required: true,
+ message: '璇疯緭鍏ヤ汉鐗�',
+ trigger: 'blur'
+ }],
+ address: [{
+ required: true,
+ message: '璇疯緭鍏ュ湴鐐�',
+ trigger: 'blur'
+ }],
+ remark: [{
+ required: true,
+ message: '璇疯緭鍏ュ娉�',
+ trigger: 'blur'
+ }],
+ createTime: [{
+ required: true,
+ message: '璇烽�夋嫨鏃ユ湡閫夋嫨',
+ trigger: 'change'
+ }],
+ },
+ typeOptions: [],
+ };
+ },
+ created() {
+ this.getList();
+ // this.getCateInfor()
+
+ },
+ methods: {
+ // 鍙栨秷鎸夐挳
+ cancelData() {
+ this.open = false;
+ this.reset();
+ },
+
+ /** 鏌ヨ瑙掕壊鍒楄〃 */
+ //鍒楄〃鏄剧ず瀹跺ぇ浜嬭
+
+ getList() {
+ this.loading = true;
+ // console.log(this.queryParams)
+ // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+ listFamilyevent(this.queryParams).then(response => {
+ // alert(123)
+ // console.log(response.data)
+ this.familyList = response.data.data;
+
+ this.total = response.data.total;
+ this.loading = false;
+ }
+ );
+ },
+
+ // 鍙栨秷鎸夐挳
+ cancel() {
+ this.open = false;
+ this.reset();
+ },
+ // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級
+ cancelDataScope() {
+ this.openDataScope = false;
+ this.reset();
+ },
+ // 琛ㄥ崟閲嶇疆
+ reset() {
+ if (this.$refs.menu != undefined) {
+ this.$refs.menu.setCheckedKeys([]);
+ }
+ this.menuExpand = false,
+ this.menuNodeAll = false,
+ this.deptExpand = true,
+ this.deptNodeAll = false,
+ this.form = {
+ roleId: undefined,
+ roleName: undefined,
+ roleKey: undefined,
+ roleSort: 0,
+ status: "0",
+ menuIds: [],
+ deptIds: [],
+ menuCheckStrictly: true,
+ deptCheckStrictly: true,
+ remark: undefined
+ };
+ this.resetForm("form");
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.resetForm("queryForm");
+ this.handleQuery();
+ },
+ // 澶氶�夋閫変腑鏁版嵁
+ handleSelectionChange(selection) {
+ this.ids = selection.map(item => item.id)
+ console.log(this.ids)
+ this.single = selection.length!=1
+ this.multiple = !selection.length
+ },
+
+ /** 鏂板鎸夐挳鎿嶄綔 */
+ handleAdd() {
+ this.reset();
+ this.open = true;
+ this.title = "娣诲姞瀹跺涵澶т簨璁颁俊鎭�";
+ },
+
+
+ /** 鏌ョ湅璇︾粏淇℃伅 */
+ handleCheck(row){
+ const id = row.id;
+ this.$router.push("/family1/bignote1/familyeventInfo/" + id);
+ },
+ /** 淇敼鎸夐挳鎿嶄綔 */
+ handleUpdate(row) {
+ const id = row.id;
+ let jd = true
+
+ this.$router.push({
+ path:"/family1/bignote1/familyeventInfo/" + id,
+ query:{
+ detail:jd
+ }
+ });
+ },
+
+
+ handlePictureCardPreview(file) {
+ this.dialogImageUrl = file.url;
+ this.dialogVisible = true;
+ },
+ /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
+ 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
+ this.$refs["elForm"].validate(valid => {
+ if (valid) {
+
+ addFamilyevent(this.formDat).then(response => {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.open = false;
+ this.getList1();
+ });
+ }
+ });
+ },
+ 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)
+ {
+ _this.fileList.push({name:response.data.fileName, "url":response.data.url})
+
+ }
+
+ else{
+ _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
+
+ }
+ })
+
+ },
+ /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+ handleDelete(row) {
+ const Ids = row.id || this.ids;
+ this.$modal.confirm('鏄惁纭鍒犻櫎搴忓彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() {
+ return delFamilyevent(Ids);
+ }).then(() => {
+ this.getList1();
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }).catch(() => {});
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ this.download('/family/zfEvent/export', {
+ ...this.queryParams
+ }, `zfEvent_${new Date().getTime()}.xlsx`)
+ }
+ }
+ };
+ </script>
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/note/propertyInfo.vue b/ruoyi-ui/src/views/note/propertyInfo.vue
new file mode 100644
index 0000000..2058a66
--- /dev/null
+++ b/ruoyi-ui/src/views/note/propertyInfo.vue
@@ -0,0 +1,362 @@
+<template>
+ <div class="app-container">
+ <div class="form-header mt">
+ <h4 class="dt h4">璧勪骇璇︾粏淇℃伅 </h4>
+ <el-button type="primary" class="pt" icon="el-icon-edit" @click="handleEdit()" :disabled="btn">缂栬緫</el-button>
+ </div>
+
+ <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
+ <el-form-item label="id" prop="id">
+ <el-input v-model="formData.id" placeholder="璇疯緭鍏d" :maxlength="11" show-word-limit :disabled="true"
+ clearable prefix-icon='el-icon-mobile' :style="{width: '100%'}"></el-input>
+ </el-form-item>
+ <el-form-item label="绫诲埆" prop="type">
+ <el-select v-model="formData.type" placeholder="璇烽�夋嫨绫诲埆" clearable :style="{width: '100%'}" :disabled="dsb" >
+ <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
+ :disabled="item.disabled"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="formData.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+ </el-form-item>
+ <el-form-item label="瀛樺偍鍦板潃" prop="location">
+ <el-input v-model="formData.location" placeholder="璇疯緭鍏ュ瓨鍌ㄥ湴鍧�" clearable :style="{width: '100%'}" :disabled="dsb">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="鎸佹湁浜�" prop="holder">
+ <el-input v-model="formData.holder" placeholder="璇疯緭鍏ユ寔鏈変汉" clearable :style="{width: '100%'}" :disabled="dsb">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="鍏蜂綋浣嶇疆" prop="address">
+ <el-input v-model="formData.address" placeholder="璇疯緭鍏ュ叿浣撲綅缃�" clearable :style="{width: '100%'}" :disabled="dsb">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="formData.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
+ </el-form-item>
+
+ <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
+ <el-upload
+ action="#"
+ list-type="picture-card"
+ multiple
+ :http-request="requestUpload"
+ :file-list="fileList"
+ >
+ <i slot="default" class="el-icon-plus"></i>
+ <div slot="file" slot-scope="{file}">
+ <img
+ class="el-upload-list__item-thumbnail"
+ :src="file.url"
+ alt=""
+ style="width: 147px; height: 147px"
+ fit="cover"
+ :preview-src-list="[file.url]"
+ >
+ <span class="el-upload-list__item-actions">
+ <span
+ class="el-upload-list__item-preview"
+ @click="handlePictureCardPreview(file)"
+ >
+ <i class="el-icon-zoom-in"></i>
+ </span>
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleDownload(file.url)"
+ >
+ <i class="el-icon-download"></i>
+ </span>
+ <span
+ v-if="!disabled"
+ class="el-upload-list__item-delete"
+ @click="handleRemove(file)"
+ >
+ <i class="el-icon-delete"></i>
+ </span>
+ </span>
+
+
+ </div>
+ </el-upload>
+
+ <h4 class="form-header">鍏朵粬闄勪欢 </h4>
+ <el-upload
+ action=""
+ :file-list="fileListOther"
+ class="upload-demo"
+ multiple
+ :on-preview="handlePreview"
+
+ :on-remove="handleRemove"
+ :http-request="requestUpload"
+ :show-file-list="true"
+ >
+ <el-button type="primary">Click to upload</el-button>
+ <template #tip>
+ <div class="el-upload__tip">
+ </div>
+ </template>
+
+
+ </el-upload>
+
+ <el-form-item size="large">
+ <el-button type="primary" @click="submitForm" :disabled="dsb">淇敼</el-button>
+ </el-form-item>
+ </el-form>
+
+ <el-dialog :visible.sync="dialogVisible">
+ <img w-full :src="dialogImageUrl" alt="Preview Image" />
+ </el-dialog>
+ </div>
+</template>
+<script>
+import {getPropertyInfo, updateProperty, uploadPic, download, getCategory} from "@/api/note/index";
+import {addRole, updateRole} from "@/api/system/role";
+import {blobValidate} from "@/utils/ruoyi";
+import errorCode from "@/utils/errorCode";
+import {Message} from "element-ui";
+
+export default {
+ components: {},
+ props: [],
+ data() {
+ return {
+ cdi:"璧勪骇璇︾粏淇℃伅",
+ udi:"璧勪骇淇℃伅淇敼",
+ fot:[".jpg",".jif"],
+ fileList:[
+ ],
+ fileListOther:[
+
+ ],
+ dsb:true,
+ btn:false,
+ formData: {
+ id: undefined,
+ type: undefined,
+ title: undefined,
+ location: undefined,
+ holder: undefined,
+ address: undefined,
+ remark: undefined,
+ url: undefined,
+ },
+ dialogImageUrl: '',
+ dialogVisible: false,
+ disabled: false,
+ rules: {
+ id: [{
+ required: true,
+ message: '璇疯緭鍏d',
+ trigger: 'blur'
+ }],
+ type: [{
+ required: true,
+ message: '璇烽�夋嫨绫诲埆',
+ trigger: 'change'
+ }],
+ title: [{
+ required: true,
+ message: '璇疯緭鍏ユ爣棰�',
+ trigger: 'blur'
+ }],
+ location: [{
+ required: true,
+ message: '璇疯緭鍏ュ瓨鍌ㄥ湴鍧�',
+ trigger: 'blur'
+ }],
+ holder: [{
+ required: true,
+ message: '璇疯緭鍏ユ寔鏈変汉',
+ trigger: 'blur'
+ }],
+ address: [{
+ required: true,
+ message: '璇疯緭鍏ュ叿浣撲綅缃�',
+ trigger: 'blur'
+ }],
+ remark: [{
+ required: true,
+ message: '璇疯緭鍏ュ娉�',
+ trigger: 'blur'
+ }],
+
+ },
+ typeOptions: [],
+ }
+ },
+ computed: {},
+ watch: {},
+ created() {
+ const id = this.$route.params && this.$route.params.id;
+ let jd;
+ if(this.$route.query.detail!=undefined)
+ {
+ jd = this.$route.query.detail
+ this.btn= jd
+ this.dsb = !jd
+ document.title = "淇敼璧勪骇璇︾粏淇℃伅";
+ this.$route.meta.title = "淇敼璧勪骇璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
+ }
+ else{
+ document.title = "鏌ョ湅璧勪骇璇︾粏淇℃伅";
+ this.$route.meta.title = "鏌ョ湅璧勪骇璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
+ }
+
+ let _this = this
+ if (id) {
+ this.loading = true;
+ getPropertyInfo(id).then((response) => {
+ this.formData = response.data;
+ let paths = response.data.url.split(",");
+ for(let i = 0; i < paths.length; i++)
+ {
+ if(paths[i]!="") {
+
+ let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
+
+ if (_this.fot.includes(pth) === true)
+ _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
+ else {
+ // alert(paths[i])
+ let nms = paths[i].split("\/")
+ let nm = nms[nms.length - 1]
+ _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
+ }
+ }
+ }
+ this.loading = false;
+ });
+ this.getCateInfor()
+
+ }
+ },
+ mounted() {},
+ methods: {
+ /** 鏌ヨ绫诲埆淇℃伅 */
+ getCateInfor()
+ {
+ let _this = this
+ getCategory().then(response=>{
+
+ response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
+ _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
+ })
+ })
+ },
+ submitForm() {
+ 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.formData.url = ul+","+uls
+
+ this.$refs['elForm'].validate(valid => {
+
+
+ if (valid) {
+ if (this.formData.id != undefined) {
+ updateProperty(this.formData).then(response => {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ // this.open = false;
+ this.btn=false
+ });
+ } else {
+ this.$modal.msgSuccess("淇敼澶辫触");
+
+ }
+ }
+ })
+ },
+ resetForm() {
+ this.$refs['elForm'].resetFields()
+ },
+ handlePreview(file)
+ {
+ let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+ let lens = formData.path.split(".")
+ let suffix = lens[lens.length-1]
+ download(formData).then(async (response) => {
+ const isLogin = await blobValidate(response);
+ let nt = new Date().getTime()
+ let filename = 'property_'+nt+'.'+suffix
+ const blob = new Blob([response])
+ saveAs(blob, filename)
+ })
+ },
+ handleRemoveFile(file) {
+ alert(23)
+ },
+ handleRemove(file) {
+ alert(323)
+ },
+ handlePictureCardPreview(file) {
+ this.dialogImageUrl = file.url;
+ this.dialogVisible = true;
+ },
+ handleDownload(url) {
+ var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
+
+ let lens = formData.path.split(".")
+ let suffix = lens[lens.length-1]
+ download(formData).then(async (response) => {
+ const isLogin = await blobValidate(response);
+ let nt = new Date().getTime()
+ let filename = 'property_'+nt+'.'+suffix
+ const blob = new Blob([response])
+ saveAs(blob, filename)
+ })
+ },
+ handleEdit()
+ {
+ this.dsb = false
+ this.btn = true
+ },
+ 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)
+ {
+ _this.fileList.push({name:response.data.fileName, "url":response.data.url})
+
+ }
+
+ else{
+ _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
+
+ }
+ })
+
+ }
+
+ }
+}
+
+</script>
+<style>
+.mt
+{
+ position: relative;
+}
+.dt{
+ display: block;
+
+}
+.pt{
+ right: 10px;
+ top:-3px;
+ display: block;
+ position: absolute;
+}
+</style>
diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue
index fb3b5ef..3474fa6 100644
--- a/ruoyi-ui/src/views/system/role/index.vue
+++ b/ruoyi-ui/src/views/system/role/index.vue
@@ -602,4 +602,353 @@
}
}
};
+</script>
+
+export default {
+ name: "Role",
+ dicts: ['sys_normal_disable'],
+ data() {
+ return {
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 闈炲崟涓鐢�
+ single: true,
+ // 闈炲涓鐢�
+ multiple: true,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 瑙掕壊琛ㄦ牸鏁版嵁
+ roleList: [],
+ // 寮瑰嚭灞傛爣棰�
+ title: "",
+ // 鏄惁鏄剧ず寮瑰嚭灞�
+ open: false,
+ // 鏄惁鏄剧ず寮瑰嚭灞傦紙鏁版嵁鏉冮檺锛�
+ openDataScope: false,
+ menuExpand: false,
+ menuNodeAll: false,
+ deptExpand: true,
+ deptNodeAll: false,
+ // 鏃ユ湡鑼冨洿
+ dateRange: [],
+ // 鏁版嵁鑼冨洿閫夐」
+ dataScopeOptions: [
+ {
+ value: "1",
+ label: "鍏ㄩ儴鏁版嵁鏉冮檺"
+ },
+ {
+ value: "2",
+ label: "鑷畾鏁版嵁鏉冮檺"
+ },
+ {
+ value: "3",
+ label: "鏈儴闂ㄦ暟鎹潈闄�"
+ },
+ {
+ value: "4",
+ label: "鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺"
+ },
+ {
+ value: "5",
+ label: "浠呮湰浜烘暟鎹潈闄�"
+ }
+ ],
+ // 鑿滃崟鍒楄〃
+ menuOptions: [],
+ // 閮ㄩ棬鍒楄〃
+ deptOptions: [],
+ // 鏌ヨ鍙傛暟
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ roleName: undefined,
+ roleKey: undefined,
+ status: undefined
+ },
+ // 琛ㄥ崟鍙傛暟
+ form: {},
+ defaultProps: {
+ children: "children",
+ label: "label"
+ },
+ // 琛ㄥ崟鏍¢獙
+ rules: {
+ roleName: [
+ { required: true, message: "瑙掕壊鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ roleKey: [
+ { required: true, message: "鏉冮檺瀛楃涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ roleSort: [
+ { required: true, message: "瑙掕壊椤哄簭涓嶈兘涓虹┖", trigger: "blur" }
+ ]
+ }
+ };
+ },
+ created() {
+ this.getList();
+ },
+ methods: {
+ /** 鏌ヨ瑙掕壊鍒楄〃 */
+ getList() {
+ this.loading = true;
+ listRole(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+ this.roleList = response.rows;
+ this.total = response.total;
+ this.loading = false;
+ }
+ );
+ },
+ /** 鏌ヨ鑿滃崟鏍戠粨鏋� */
+ getMenuTreeselect() {
+ menuTreeselect().then(response => {
+ this.menuOptions = response.data;
+ });
+ },
+ // 鎵�鏈夎彍鍗曡妭鐐规暟鎹�
+ getMenuAllCheckedKeys() {
+ // 鐩墠琚�変腑鐨勮彍鍗曡妭鐐�
+ let checkedKeys = this.$refs.menu.getCheckedKeys();
+ // 鍗婇�変腑鐨勮彍鍗曡妭鐐�
+ let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
+ checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
+ return checkedKeys;
+ },
+ // 鎵�鏈夐儴闂ㄨ妭鐐规暟鎹�
+ getDeptAllCheckedKeys() {
+ // 鐩墠琚�変腑鐨勯儴闂ㄨ妭鐐�
+ let checkedKeys = this.$refs.dept.getCheckedKeys();
+ // 鍗婇�変腑鐨勯儴闂ㄨ妭鐐�
+ let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
+ checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
+ return checkedKeys;
+ },
+ /** 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戠粨鏋� */
+ getRoleMenuTreeselect(roleId) {
+ return roleMenuTreeselect(roleId).then(response => {
+ this.menuOptions = response.menus;
+ return response;
+ });
+ },
+ /** 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� */
+ getDeptTree(roleId) {
+ return deptTreeSelect(roleId).then(response => {
+ this.deptOptions = response.depts;
+ return response;
+ });
+ },
+ // 瑙掕壊鐘舵�佷慨鏀�
+ handleStatusChange(row) {
+ let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+ this.$modal.confirm('纭瑕�"' + text + '""' + row.roleName + '"瑙掕壊鍚楋紵').then(function() {
+ return changeRoleStatus(row.roleId, row.status);
+ }).then(() => {
+ this.$modal.msgSuccess(text + "鎴愬姛");
+ }).catch(function() {
+ row.status = row.status === "0" ? "1" : "0";
+ });
+ },
+ // 鍙栨秷鎸夐挳
+ cancel() {
+ this.open = false;
+ this.reset();
+ },
+ // 鍙栨秷鎸夐挳锛堟暟鎹潈闄愶級
+ cancelDataScope() {
+ this.openDataScope = false;
+ this.reset();
+ },
+ // 琛ㄥ崟閲嶇疆
+ reset() {
+ if (this.$refs.menu != undefined) {
+ this.$refs.menu.setCheckedKeys([]);
+ }
+ this.menuExpand = false,
+ this.menuNodeAll = false,
+ this.deptExpand = true,
+ this.deptNodeAll = false,
+ this.form = {
+ roleId: undefined,
+ roleName: undefined,
+ roleKey: undefined,
+ roleSort: 0,
+ status: "0",
+ menuIds: [],
+ deptIds: [],
+ menuCheckStrictly: true,
+ deptCheckStrictly: true,
+ remark: undefined
+ };
+ this.resetForm("form");
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.resetForm("queryForm");
+ this.handleQuery();
+ },
+ // 澶氶�夋閫変腑鏁版嵁
+ handleSelectionChange(selection) {
+ this.ids = selection.map(item => item.roleId)
+ this.single = selection.length!=1
+ this.multiple = !selection.length
+ },
+ // 鏇村鎿嶄綔瑙﹀彂
+ handleCommand(command, row) {
+ switch (command) {
+ case "handleDataScope":
+ this.handleDataScope(row);
+ break;
+ case "handleAuthUser":
+ this.handleAuthUser(row);
+ break;
+ default:
+ break;
+ }
+ },
+ // 鏍戞潈闄愶紙灞曞紑/鎶樺彔锛�
+ handleCheckedTreeExpand(value, type) {
+ if (type == 'menu') {
+ let treeList = this.menuOptions;
+ for (let i = 0; i < treeList.length; i++) {
+ this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
+ }
+ } else if (type == 'dept') {
+ let treeList = this.deptOptions;
+ for (let i = 0; i < treeList.length; i++) {
+ this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
+ }
+ }
+ },
+ // 鏍戞潈闄愶紙鍏ㄩ��/鍏ㄤ笉閫夛級
+ handleCheckedTreeNodeAll(value, type) {
+ if (type == 'menu') {
+ this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
+ } else if (type == 'dept') {
+ this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
+ }
+ },
+ // 鏍戞潈闄愶紙鐖跺瓙鑱斿姩锛�
+ handleCheckedTreeConnect(value, type) {
+ if (type == 'menu') {
+ this.form.menuCheckStrictly = value ? true: false;
+ } else if (type == 'dept') {
+ this.form.deptCheckStrictly = value ? true: false;
+ }
+ },
+ /** 鏂板鎸夐挳鎿嶄綔 */
+ handleAdd() {
+ this.reset();
+ this.getMenuTreeselect();
+ this.open = true;
+ this.title = "娣诲姞瑙掕壊";
+ },
+ /** 淇敼鎸夐挳鎿嶄綔 */
+ handleUpdate(row) {
+ this.reset();
+ const roleId = row.roleId || this.ids
+ const roleMenu = this.getRoleMenuTreeselect(roleId);
+ getRole(roleId).then(response => {
+ this.form = response.data;
+ this.open = true;
+ this.$nextTick(() => {
+ roleMenu.then(res => {
+ let checkedKeys = res.checkedKeys
+ checkedKeys.forEach((v) => {
+ this.$nextTick(()=>{
+ this.$refs.menu.setChecked(v, true ,false);
+ })
+ })
+ });
+ });
+ this.title = "淇敼瑙掕壊";
+ });
+ },
+ /** 閫夋嫨瑙掕壊鏉冮檺鑼冨洿瑙﹀彂 */
+ dataScopeSelectChange(value) {
+ if(value !== '2') {
+ this.$refs.dept.setCheckedKeys([]);
+ }
+ },
+ /** 鍒嗛厤鏁版嵁鏉冮檺鎿嶄綔 */
+ handleDataScope(row) {
+ this.reset();
+ const deptTreeSelect = this.getDeptTree(row.roleId);
+ getRole(row.roleId).then(response => {
+ this.form = response.data;
+ this.openDataScope = true;
+ this.$nextTick(() => {
+ deptTreeSelect.then(res => {
+ this.$refs.dept.setCheckedKeys(res.checkedKeys);
+ });
+ });
+ this.title = "鍒嗛厤鏁版嵁鏉冮檺";
+ });
+ },
+ /** 鍒嗛厤鐢ㄦ埛鎿嶄綔 */
+ handleAuthUser: function(row) {
+ const roleId = row.roleId;
+ this.$router.push("/system/role-auth/user/" + roleId);
+ },
+ /** 鎻愪氦鎸夐挳 */
+ submitForm: function() {
+ this.$refs["form"].validate(valid => {
+ if (valid) {
+ if (this.form.roleId != undefined) {
+ this.form.menuIds = this.getMenuAllCheckedKeys();
+ updateRole(this.form).then(response => {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ this.open = false;
+ this.getList();
+ });
+ } else {
+ this.form.menuIds = this.getMenuAllCheckedKeys();
+ addRole(this.form).then(response => {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.open = false;
+ this.getList();
+ });
+ }
+ }
+ });
+ },
+ /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
+ submitDataScope: function() {
+ if (this.form.roleId != undefined) {
+ this.form.deptIds = this.getDeptAllCheckedKeys();
+ dataScope(this.form).then(response => {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ this.openDataScope = false;
+ this.getList();
+ });
+ }
+ },
+ /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+ handleDelete(row) {
+ const roleIds = row.roleId || this.ids;
+ this.$modal.confirm('鏄惁纭鍒犻櫎瑙掕壊缂栧彿涓�"' + roleIds + '"鐨勬暟鎹」锛�').then(function() {
+ return delRole(roleIds);
+ }).then(() => {
+ this.getList();
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }).catch(() => {});
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ this.download('system/role/export', {
+ ...this.queryParams
+ }, `role_${new Date().getTime()}.xlsx`)
+ }
+ }
+};
</script>
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue
index ae87fe4..1e11b24 100644
--- a/ruoyi-ui/src/views/system/user/index.vue
+++ b/ruoyi-ui/src/views/system/user/index.vue
@@ -606,6 +606,330 @@
/** 鎻愪氦鎸夐挳 */
submitForm: function() {
this.$refs["form"].validate(valid => {
+ alert(valid)
+ if (valid) {
+ if (this.form.userId != undefined) {
+ updateUser(this.form).then(response => {
+ this.$modal.msgSuccess("淇敼鎴愬姛");
+ this.open = false;
+ this.getList();
+ });
+ } else {
+ addUser(this.form).then(response => {
+ this.$modal.msgSuccess("鏂板鎴愬姛");
+ this.open = false;
+ this.getList();
+ });
+ }
+ }
+ });
+ },
+ /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+ handleDelete(row) {
+ const userIds = row.userId || this.ids;
+ this.$modal.confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�').then(function() {
+ return delUser(userIds);
+ }).then(() => {
+ this.getList();
+ this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ }).catch(() => {});
+ },
+ /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+ handleExport() {
+ this.download('system/user/export', {
+ ...this.queryParams
+ }, `user_${new Date().getTime()}.xlsx`)
+ },
+ /** 瀵煎叆鎸夐挳鎿嶄綔 */
+ handleImport() {
+ this.upload.title = "鐢ㄦ埛瀵煎叆";
+ this.upload.open = true;
+ },
+ /** 涓嬭浇妯℃澘鎿嶄綔 */
+ importTemplate() {
+ this.download('system/user/importTemplate', {
+ }, `user_template_${new Date().getTime()}.xlsx`)
+ },
+ // 鏂囦欢涓婁紶涓鐞�
+ handleFileUploadProgress(event, file, fileList) {
+ this.upload.isUploading = true;
+ },
+ // 鏂囦欢涓婁紶鎴愬姛澶勭悊
+ handleFileSuccess(response, file, fileList) {
+ this.upload.open = false;
+ this.upload.isUploading = false;
+ this.$refs.upload.clearFiles();
+ this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+ this.getList();
+ },
+ // 鎻愪氦涓婁紶鏂囦欢
+ submitFileForm() {
+ this.$refs.upload.submit();
+ }
+ }
+};
+</script>
+
+export default {
+ name: "User",
+ dicts: ['sys_normal_disable', 'sys_user_sex'],
+ components: { Treeselect },
+ data() {
+ return {
+ // 閬僵灞�
+ loading: true,
+ // 閫変腑鏁扮粍
+ ids: [],
+ // 闈炲崟涓鐢�
+ single: true,
+ // 闈炲涓鐢�
+ multiple: true,
+ // 鏄剧ず鎼滅储鏉′欢
+ showSearch: true,
+ // 鎬绘潯鏁�
+ total: 0,
+ // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+ userList: null,
+ // 寮瑰嚭灞傛爣棰�
+ title: "",
+ // 閮ㄩ棬鏍戦�夐」
+ deptOptions: undefined,
+ // 鏄惁鏄剧ず寮瑰嚭灞�
+ open: false,
+ // 閮ㄩ棬鍚嶇О
+ deptName: undefined,
+ // 榛樿瀵嗙爜
+ initPassword: undefined,
+ // 鏃ユ湡鑼冨洿
+ dateRange: [],
+ // 宀椾綅閫夐」
+ postOptions: [],
+ // 瑙掕壊閫夐」
+ roleOptions: [],
+ // 琛ㄥ崟鍙傛暟
+ form: {},
+ defaultProps: {
+ children: "children",
+ label: "label"
+ },
+ // 鐢ㄦ埛瀵煎叆鍙傛暟
+ upload: {
+ // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
+ open: false,
+ // 寮瑰嚭灞傛爣棰橈紙鐢ㄦ埛瀵煎叆锛�
+ title: "",
+ // 鏄惁绂佺敤涓婁紶
+ isUploading: false,
+ // 鏄惁鏇存柊宸茬粡瀛樺湪鐨勭敤鎴锋暟鎹�
+ updateSupport: 0,
+ // 璁剧疆涓婁紶鐨勮姹傚ご閮�
+ headers: { Authorization: "Bearer " + getToken() },
+ // 涓婁紶鐨勫湴鍧�
+ url: process.env.VUE_APP_BASE_API + "/system/user/importData"
+ },
+ // 鏌ヨ鍙傛暟
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ userName: undefined,
+ phonenumber: undefined,
+ status: undefined,
+ deptId: undefined
+ },
+ // 鍒椾俊鎭�
+ columns: [
+ { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true },
+ { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true },
+ { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true },
+ { key: 3, label: `閮ㄩ棬`, visible: true },
+ { key: 4, label: `鎵嬫満鍙风爜`, visible: true },
+ { key: 5, label: `鐘舵�乣, visible: true },
+ { key: 6, label: `鍒涘缓鏃堕棿`, visible: true }
+ ],
+ // 琛ㄥ崟鏍¢獙
+ rules: {
+ userName: [
+ { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+ { min: 2, max: 20, message: '鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿', trigger: 'blur' }
+ ],
+ nickName: [
+ { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }
+ ],
+ password: [
+ { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
+ { min: 5, max: 20, message: '鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿', trigger: 'blur' }
+ ],
+ email: [
+ {
+ type: "email",
+ message: "璇疯緭鍏ユ纭殑閭鍦板潃",
+ trigger: ["blur", "change"]
+ }
+ ],
+ phonenumber: [
+ {
+ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+ message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
+ trigger: "blur"
+ }
+ ]
+ }
+ };
+ },
+ watch: {
+ // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+ deptName(val) {
+ this.$refs.tree.filter(val);
+ }
+ },
+ created() {
+ this.getList();
+ this.getDeptTree();
+ this.getConfigKey("sys.user.initPassword").then(response => {
+ this.initPassword = response.msg;
+ });
+ },
+ methods: {
+ /** 鏌ヨ鐢ㄦ埛鍒楄〃 */
+ getList() {
+ this.loading = true;
+ listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+ this.userList = response.rows;
+ this.total = response.total;
+ this.loading = false;
+ }
+ );
+ },
+ /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+ getDeptTree() {
+ deptTreeSelect().then(response => {
+ this.deptOptions = response.data;
+ });
+ },
+ // 绛涢�夎妭鐐�
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.label.indexOf(value) !== -1;
+ },
+ // 鑺傜偣鍗曞嚮浜嬩欢
+ handleNodeClick(data) {
+ this.queryParams.deptId = data.id;
+ this.handleQuery();
+ },
+ // 鐢ㄦ埛鐘舵�佷慨鏀�
+ handleStatusChange(row) {
+ let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+ this.$modal.confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵').then(function() {
+ return changeUserStatus(row.userId, row.status);
+ }).then(() => {
+ this.$modal.msgSuccess(text + "鎴愬姛");
+ }).catch(function() {
+ row.status = row.status === "0" ? "1" : "0";
+ });
+ },
+ // 鍙栨秷鎸夐挳
+ cancel() {
+ this.open = false;
+ this.reset();
+ },
+ // 琛ㄥ崟閲嶇疆
+ reset() {
+ this.form = {
+ userId: undefined,
+ deptId: undefined,
+ userName: undefined,
+ nickName: undefined,
+ password: undefined,
+ phonenumber: undefined,
+ email: undefined,
+ sex: undefined,
+ status: "0",
+ remark: undefined,
+ postIds: [],
+ roleIds: []
+ };
+ this.resetForm("form");
+ },
+ /** 鎼滅储鎸夐挳鎿嶄綔 */
+ handleQuery() {
+ this.queryParams.pageNum = 1;
+ this.getList();
+ },
+ /** 閲嶇疆鎸夐挳鎿嶄綔 */
+ resetQuery() {
+ this.dateRange = [];
+ this.resetForm("queryForm");
+ this.queryParams.deptId = undefined;
+ this.$refs.tree.setCurrentKey(null);
+ this.handleQuery();
+ },
+ // 澶氶�夋閫変腑鏁版嵁
+ handleSelectionChange(selection) {
+ this.ids = selection.map(item => item.userId);
+ this.single = selection.length != 1;
+ this.multiple = !selection.length;
+ },
+ // 鏇村鎿嶄綔瑙﹀彂
+ handleCommand(command, row) {
+ switch (command) {
+ case "handleResetPwd":
+ this.handleResetPwd(row);
+ break;
+ case "handleAuthRole":
+ this.handleAuthRole(row);
+ break;
+ default:
+ break;
+ }
+ },
+ /** 鏂板鎸夐挳鎿嶄綔 */
+ handleAdd() {
+ this.reset();
+ getUser().then(response => {
+ this.postOptions = response.posts;
+ this.roleOptions = response.roles;
+ this.open = true;
+ this.title = "娣诲姞鐢ㄦ埛";
+ this.form.password = this.initPassword;
+ });
+ },
+ /** 淇敼鎸夐挳鎿嶄綔 */
+ handleUpdate(row) {
+ this.reset();
+ const userId = row.userId || this.ids;
+ getUser(userId).then(response => {
+ this.form = response.data;
+ this.postOptions = response.posts;
+ this.roleOptions = response.roles;
+ this.$set(this.form, "postIds", response.postIds);
+ this.$set(this.form, "roleIds", response.roleIds);
+ this.open = true;
+ this.title = "淇敼鐢ㄦ埛";
+ this.form.password = "";
+ });
+ },
+ /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
+ handleResetPwd(row) {
+ this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ closeOnClickModal: false,
+ inputPattern: /^.{5,20}$/,
+ inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿"
+ }).then(({ value }) => {
+ resetUserPwd(row.userId, value).then(response => {
+ this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
+ });
+ }).catch(() => {});
+ },
+ /** 鍒嗛厤瑙掕壊鎿嶄綔 */
+ handleAuthRole: function(row) {
+ const userId = row.userId;
+ this.$router.push("/system/user-auth/role/" + userId);
+ },
+ /** 鎻愪氦鎸夐挳 */
+ submitForm: function() {
+ this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.userId != undefined) {
updateUser(this.form).then(response => {
diff --git a/ruoyi-ui/src/views/tmp.vue b/ruoyi-ui/src/views/tmp.vue
new file mode 100644
index 0000000..0da4fdb
--- /dev/null
+++ b/ruoyi-ui/src/views/tmp.vue
@@ -0,0 +1,12 @@
+<template>
+ <div>
+
+ dddddddddddddddddddddasfdasdfasdfasd
+ </div>
+</template>
+
+<script>
+</script>
+<style scoped>
+
+</style>
diff --git a/ruoyi-ui/target/npmlist.json b/ruoyi-ui/target/npmlist.json
new file mode 100644
index 0000000..a738a25
--- /dev/null
+++ b/ruoyi-ui/target/npmlist.json
@@ -0,0 +1 @@
+{"version":"3.8.5","name":"ruoyi","dependencies":{"@riophae/vue-treeselect":{"version":"0.4.0"},"axios":{"version":"0.24.0"},"clipboard":{"version":"2.0.8"},"core-js":{"version":"3.25.3"},"echarts":{"version":"5.4.0"},"element-ui":{"version":"2.15.12"},"file-saver":{"version":"2.0.5"},"fuse.js":{"version":"6.4.3"},"highlight.js":{"version":"9.18.5"},"js-beautify":{"version":"1.13.0"},"js-cookie":{"version":"3.0.1"},"jsencrypt":{"version":"3.0.0-rc.1"},"nprogress":{"version":"0.2.0"},"quill":{"version":"1.3.7"},"screenfull":{"version":"5.0.2"},"sortablejs":{"version":"1.10.2"},"vue-count-to":{"version":"1.0.13"},"vue-cropper":{"version":"0.5.5"},"vue-meta":{"version":"2.4.0"},"vue-router":{"version":"3.4.9"},"vue":{"version":"2.6.12"},"vuedraggable":{"version":"2.24.3"},"vuex":{"version":"3.6.0"}}}
\ No newline at end of file
diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js
index 767a3eb..05ddcda 100644
--- a/ruoyi-ui/vue.config.js
+++ b/ruoyi-ui/vue.config.js
@@ -7,9 +7,9 @@
const CompressionPlugin = require('compression-webpack-plugin')
-const name = process.env.VUE_APP_TITLE || '寮犳皬APP' // 缃戦〉鏍囬
+const name = process.env.VUE_APP_TITLE || '鑻ヤ緷绠$悊绯荤粺' // 缃戦〉鏍囬
-const port = process.env.port || process.env.npm_config_port || 8088 // 绔彛
+const port = process.env.port || process.env.npm_config_port || 80 // 绔彛
// vue.config.js 閰嶇疆璇存槑
//瀹樻柟vue.config.js 鍙傝�冩枃妗� https://cli.vuejs.org/zh/config/#css-loaderoptions
@@ -35,8 +35,7 @@
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
- // target: `http://localhost:8080`,
- target: `http://47.93.189.255:8080`,
+ target: `http://47.93.189.255:8080/`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
@@ -47,15 +46,8 @@
},
css: {
loaderOptions: {
- // sass: {
- // sassOptions: { outputStyle: "expanded" }
- // }
- postcss:{
- plugins:[
- require('postcss-px2rem')({
- remUnit:192
- })
- ]
+ sass: {
+ sassOptions: { outputStyle: "expanded" }
}
}
},
@@ -97,17 +89,6 @@
symbolId: 'icon-[name]'
})
.end()
- //
- // config.module
- // .rule("css")
- // .test(/\.css$/)
- // .oneOf("vue")
- // .resourceQuery(/\?vue/)
- // .use("px2rem")
- // .loader("px2rem-loader")
- // .options({
- // remUnit: 192 // 璁捐绋垮ぇ灏忔瘮渚� / 10
- // });
config
.when(process.env.NODE_ENV !== 'development',
@@ -152,5 +133,4 @@
}
)
}
-
}
--
Gitblit v1.9.1