| | |
| | | # 页颿 é¢ |
| | | VUE_APP_TITLE = å¼ æ°APP |
| | | VUE_APP_TITLE = è¥ä¾ç®¡çç³»ç» |
| | | |
| | | # å¼åç¯å¢é
ç½® |
| | | ENV = 'development' |
| | |
| | | # è¥ä¾ç®¡çç³»ç»/å¼åç¯å¢ |
| | | VUE_APP_BASE_API = '/dev-api' |
| | | |
| | | |
| | | VUE_APP_BASE_TRUE_API = 'http://47.93.189.255:8080/' |
| | | # è·¯ç±æå è½½ |
| | | VUE_CLI_BABEL_TRANSPILE_MODULES = true |
| | |
| | | # 页颿 é¢ |
| | | VUE_APP_TITLE = å¼ æ°APP |
| | | VUE_APP_TITLE = è¥ä¾ç®¡çç³»ç» |
| | | |
| | | # ç产ç¯å¢é
ç½® |
| | | ENV = 'production' |
| | |
| | | # 页颿 é¢ |
| | | VUE_APP_TITLE = å¼ æ°APP |
| | | VUE_APP_TITLE = è¥ä¾ç®¡çç³»ç» |
| | | |
| | | NODE_ENV = production |
| | | |
| | |
| | | { |
| | | "name": "ruoyi", |
| | | "version": "3.8.5", |
| | | "description": "å¼ æ°APP", |
| | | "description": "è¥ä¾ç®¡çç³»ç»", |
| | | "author": "è¥ä¾", |
| | | "license": "MIT", |
| | | "scripts": { |
| | |
| | | "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", |
| | |
| | | <template> |
| | | <div id="app"> |
| | | <router-view /> |
| | | |
| | | |
| | | |
| | | <theme-picker /> |
| | | </div> |
| | | </template> |
New file |
| | |
| | | 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} |
| | | // }) |
| | | // } |
| | | |
| | | |
| | |
| | | code, |
| | | uuid |
| | | } |
| | | |
| | | |
| | | return request({ |
| | | url: '/login', |
| | | headers: { |
| | |
| | | |
| | | // è·åéªè¯ç |
| | | export function getCodeImg() { |
| | | console.log("-----") |
| | | return request({ |
| | | url: '/captchaImage', |
| | | headers: { |
| | | isToken: false |
| | | }, |
| | | method: 'get', |
| | | timeout: 20000 |
| | | }) |
| | | } |
| | | |
| | | // è·åéªè¯ç |
| | | export function getCodeImg() { |
| | | return request({ |
| | | url: '/captchaImage', |
| | | headers: { |
| | |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/tmps', |
| | | component: () => import('@/views/tmp'), |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/401', |
| | | component: () => import('@/views/error/401'), |
| | | hidden: true |
| | |
| | | name: 'Index', |
| | | meta: { title: 'é¦é¡µ', icon: 'dashboard', affix: true } |
| | | } |
| | | |
| | | ] |
| | | }, |
| | | |
| | | { |
| | | path: '/user', |
| | | component: Layout, |
| | |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | 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, |
| | |
| | | |
| | | export const loadView = (view) => { |
| | | if (process.env.NODE_ENV === 'development') { |
| | | |
| | | return (resolve) => require([`@/views/${view}`], resolve) |
| | | } else { |
| | | // ä½¿ç¨ import å®ç°ç产ç¯å¢çè·¯ç±æå è½½ |
| | |
| | | |
| | | const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || '' |
| | | const state = { |
| | | title: 'å¼ æ°APP', |
| | | title: '', |
| | | theme: storageSetting.theme || '#409EFF', |
| | | sideTheme: storageSetting.sideTheme || sideTheme, |
| | | showSettings: showSettings, |
| | |
| | | // axiosä¸è¯·æ±é
ç½®æbaseURLé项ï¼è¡¨ç¤ºè¯·æ±URLå
Œ
±é¨å |
| | | baseURL: process.env.VUE_APP_BASE_API, |
| | | // è¶
æ¶ |
| | | timeout: 10000 |
| | | timeout: 1000000 |
| | | }) |
| | | |
| | | // requestæ¦æªå¨ |
| | |
| | | // 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 = { |
| | |
| | | return config |
| | | }, error => { |
| | | console.log(error) |
| | | |
| | | Promise.reject(error) |
| | | }) |
| | | |
| | |
| | | service.interceptors.response.use(res => { |
| | | // æªè®¾ç½®ç¶æç åé»è®¤æåç¶æ |
| | | const code = res.data.code || 200; |
| | | |
| | | |
| | | // è·åéè¯¯ä¿¡æ¯ |
| | | const msg = errorCode[code] || res.data.msg || errorCode['default'] |
| | | // äºè¿å¶æ°æ®åç´æ¥è¿å |
| | |
| | | try { |
| | | const text = await data.text(); |
| | | JSON.parse(text); |
| | | alert(text) |
| | | return false; |
| | | } catch (error) { |
| | | return true; |
New file |
| | |
| | | <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="请è¾å
¥id" :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: '请è¾å
¥id', |
| | | 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> |
| | | |
New file |
| | |
| | | <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"; |
| | | |
| | | |
| | | |
| | | //å¨system/note/index.jsä¸å¯¼å
¥æ¥å£å½æ° --æ¥å¥½äº |
| | | 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> |
| | | |
New file |
| | |
| | | <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="请è¾å
¥id" :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: '请è¾å
¥id', |
| | | 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> |
| | |
| | | } |
| | | } |
| | | }; |
| | | </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> |
| | |
| | | /** æäº¤æé® */ |
| | | 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 => { |
New file |
| | |
| | | <template> |
| | | <div> |
| | | |
| | | dddddddddddddddddddddasfdasdfasdfasd |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | </script> |
| | | <style scoped> |
| | | |
| | | </style> |
New file |
| | |
| | | {"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"}}} |
| | |
| | | |
| | | 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 |
| | |
| | | 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]: '' |
| | |
| | | }, |
| | | css: { |
| | | loaderOptions: { |
| | | // sass: { |
| | | // sassOptions: { outputStyle: "expanded" } |
| | | // } |
| | | postcss:{ |
| | | plugins:[ |
| | | require('postcss-px2rem')({ |
| | | remUnit:192 |
| | | }) |
| | | ] |
| | | sass: { |
| | | sassOptions: { outputStyle: "expanded" } |
| | | } |
| | | } |
| | | }, |
| | |
| | | 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', |
| | |
| | | } |
| | | ) |
| | | } |
| | | |
| | | } |