From 6de4ec8ac6822f22745c9bd059487a743e836e02 Mon Sep 17 00:00:00 2001 From: Tcsm <1377977403@qq.com> Date: 星期三, 12 四月 2023 00:04:07 +0800 Subject: [PATCH] 4.12日提交通讯录模块和成长经历模块 --- ruoyi-ui/src/views/self/show.vue | 250 ++++++++------- ruoyi-ui/src/assets/icons/top.png | 0 ruoyi-ui/src/views/contacts/index.vue | 203 ++++++++---- ruoyi-ui/src/views/contacts/contactsInfo.vue | 396 ++++++++++++++++++++++++++ 4 files changed, 661 insertions(+), 188 deletions(-) diff --git a/ruoyi-ui/src/assets/icons/top.png b/ruoyi-ui/src/assets/icons/top.png new file mode 100644 index 0000000..069f742 --- /dev/null +++ b/ruoyi-ui/src/assets/icons/top.png Binary files differ diff --git a/ruoyi-ui/src/views/contacts/contactsInfo.vue b/ruoyi-ui/src/views/contacts/contactsInfo.vue new file mode 100644 index 0000000..d092eef --- /dev/null +++ b/ruoyi-ui/src/views/contacts/contactsInfo.vue @@ -0,0 +1,396 @@ +<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> + <!-- <br>--> + <!-- <el-button type="primary" class="pt" @click="handleExport"--> + <!-- v-hasPermi="['self:user:export']" >瀵煎嚭</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="myName"> + <el-input v-model="formData.myName" placeholder="璇疯緭鍏ユ垚鍛樺鍚�" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="绉板懠" prop="nickName"> + <el-input v-model="formData.nickName" placeholder="璇疯緭鍏ョО鍛�" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="濮撳悕" prop="name"> + <el-input v-model="formData.name" placeholder="璇疯緭鍏ュ鍚�" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="宸ヤ綔鍗曚綅" prop="work"> + <el-input v-model="formData.work" placeholder="璇疯緭鍏ュ叿浣撲綅缃�" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="鎵嬫満" prop="phone"> + <el-input v-model="formData.phone" placeholder="璇疯緭鍏ユ墜鏈�" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="寰俊" prop="wx"> + <el-input v-model="formData.wx" placeholder="璇疯緭鍏ュ井淇�" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="QQ" prop="qq"> + <el-input v-model="formData.qq" placeholder="璇疯緭鍏Q" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="twitter" prop="twitter"> + <el-input v-model="formData.twitter" placeholder="璇疯緭鍏witter" clearable :style="{width: '100%'}" :disabled="dsb"> + </el-input> + </el-form-item> + <el-form-item label="鏄惁甯歌仈绯�" prop="isAlways"> + <el-input v-model="formData.isAlways" 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">鐐瑰嚮涓婁紶</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 {getContactList, getContactIdList, addContact,updateContact, download,delContact,uploadPic} from "@/api/contacts/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, + + // 閫氳褰曡〃鏍兼暟鎹� + contactList: [], + + formData: { + //閫氳褰� + id:undefined, + myName:undefined, + nickName:undefined, + name:undefined, + work:undefined, + + phone:undefined, + wx:undefined, + qq:undefined, + twitter:undefined, + isAlways:undefined, + remark:undefined, + url: undefined, + }, + dialogImageUrl: '', + dialogVisible: false, + disabled: false, + rules: { + id: [{ + required: true, + message: '璇疯緭鍏d', + trigger: 'blur' + }], + + myName: [{ + required: true, + message: '璇疯緭鍏ユ垚鍛樺鍚�', + trigger: 'blur' + }], + nickName: [{ + required: true, + message: '璇疯緭鍏ョО鍛�', + trigger: 'blur' + }], + name: [{ + 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; + getContactIdList(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) { + updateContact(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}) + + } + }) + + }, + + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('/zfContact/export', { + ...this.queryParams + }, `zfContact_${new Date().getTime()}.xlsx`) + } + + } +} + +</script> + +<style scoped> +.mt +{ + position: relative; +} +.dt{ + display: block; + +} +.pt{ + right: 10px; + top:-3px; + display: block; + position: absolute; +} +</style> + diff --git a/ruoyi-ui/src/views/contacts/index.vue b/ruoyi-ui/src/views/contacts/index.vue index 82404cb..6c73b4f 100644 --- a/ruoyi-ui/src/views/contacts/index.vue +++ b/ruoyi-ui/src/views/contacts/index.vue @@ -1,15 +1,21 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> - <el-form-item label="" prop="id" style="padding-left:30px"> + <el-form-item label="" prop="phone wx qq twitter isAlways remark" > <el-input - v-model="queryParams.id" + v-model:phone="queryParams.phone" + v-model:wx="queryParams.wx" + v-model:qq="queryParams.qq" + v-model:twitter="queryParams.twitter" + v-model:isAlways="queryParams.isAlways" + v-model:remark="queryParams.remark" placeholder="鍦ㄢ�滈�氳褰曗�濅腑鎼滅储" clearable style="width: 240px" @keyup.enter.native="handleQuery"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input> + <!-- v-model="queryParams.id"--> </el-form-item> <el-form-item label="鎴愬憳濮撳悕" prop="myName" style="padding-left:180px"> @@ -36,44 +42,44 @@ </el-form-item> <el-cntainer> <el-col :span="9" > - <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-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-item> </el-col> </el-cntainer> - <el-form-item label="濮撳悕" prop="name"> - <el-input - v-model="queryParams.name" - placeholder="璇疯緭鍏ュ鍚�" - clearable - style="width: 240px" - @keyup.enter.native="handleQuery"> - <i slot="prefix" class="el-input__icon el-icon-search"></i> - </el-input> - </el-form-item> - <el-form-item label="宸ヤ綔鍗曚綅" prop="work"> - <el-input - v-model="queryParams.work" - placeholder="璇疯緭鍏ュ伐浣滃崟浣�" - clearable - style="width: 240px" - @keyup.enter.native="handleQuery" - > - <i slot="prefix" class="el-input__icon el-icon-search"></i> - </el-input> - </el-form-item> + <el-form-item label="濮撳悕" prop="name"> + <el-input + v-model="queryParams.name" + placeholder="璇疯緭鍏ュ鍚�" + clearable + style="width: 240px" + @keyup.enter.native="handleQuery"> + <i slot="prefix" class="el-input__icon el-icon-search"></i> + </el-input> + </el-form-item> + <el-form-item label="宸ヤ綔鍗曚綅" prop="work"> + <el-input + v-model="queryParams.work" + placeholder="璇疯緭鍏ュ伐浣滃崟浣�" + clearable + style="width: 240px" + @keyup.enter.native="handleQuery" + > + <i slot="prefix" class="el-input__icon el-icon-search"></i> + </el-input> + </el-form-item> </el-form> <div style="width: 72px; -height: 24px; -font-size: 18px; -font-family: Microsoft YaHei-Regular, Microsoft YaHei; -font-weight: 400; -color: #000000; -line-height: 21px; -">閫氳褰�</div> + height: 24px; + font-size: 18px; + font-family: Microsoft YaHei-Regular, Microsoft YaHei; + font-weight: 400; + color: #000000; + line-height: 21px; + ">閫氳褰�</div> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button @@ -111,25 +117,36 @@ </el-row> <el-table v-loading="loading" :data="contactList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="鎴愬憳濮撳悕" prop="myName" sortable width="100" /> - <el-table-column label="绉板懠" prop="nickName" sortable :show-overflow-tooltip="true" width="100" /> - <el-table-column label="濮撳悕" prop="name" sortable :show-overflow-tooltip="true" width="100" /> - <el-table-column label="宸ヤ綔鍗曚綅" prop="work" sortable width="100" /> - <el-table-column label="鎵嬫満" prop="phone" sortable width="120" /> - <el-table-column label="鍏跺畠鑱旂郴鏂瑰紡" prop="wx qq twitter" sortable width="150" > + <el-table-column type="selection" width="25" align="center" /> + <el-table-column label="鎴愬憳濮撳悕" prop="myName" sortable width="100" > <template slot-scope="scope"> - {{scope.row.wx}}/ - {{scope.row.qq}}/ + <div> + <a href="javascript:;" @click="handleCheck(scope.row)">{{scope.row.myName}}</a> + </div> + </template> + + </el-table-column> + <el-table-column label="绉板懠" prop="nickName" sortable :show-overflow-tooltip="true" width="80" /> + <el-table-column label="濮撳悕" prop="name" sortable :show-overflow-tooltip="true" width="80" /> + <el-table-column label="宸ヤ綔鍗曚綅" prop="work" sortable width="100" /> + <el-table-column label="鎵嬫満" prop="phone" sortable width="110" /> + <el-table-column label="鍏跺畠鑱旂郴鏂瑰紡" prop="wx qq twitter" sortable width="130" > + <template slot-scope="scope"> + {{scope.row.wx}}<br> + {{scope.row.qq}}<br> {{scope.row.twitter}} </template> </el-table-column> - <el-table-column label="鏄惁甯歌仈绯�" prop="isAlways" sortable width="120" /> + <el-table-column label="鏄惁甯歌仈绯�" prop="isAlways" sortable width="120" > + <template slot-scope="scope"> + <span v-if="scope.row.isAlways===1">鏄�</span> + <span v-if="scope.row.isAlways===0">鍚�</span> + </template> + </el-table-column> <el-table-column label="鐢靛瓙鍚嶇墖" prop="url" align="center" sortable width="180"> -<!-- <el-image--> -<!-- :src="'http://47.93.189.255:8080/'+ contactList.url"--> -<!-- :fit="fit"--> -<!-- ></el-image>--> + <template slot-scope="scope"> + <el-image style="width: 100px; height: 100px" :src="'http://47.93.189.255:8080/'+ scope.row.url" fit="cover"></el-image> + </template> </el-table-column> <el-table-column label="澶囨敞锛堟槸鍚﹀瓨鍦ㄩ噾閽卞叧绯伙級" prop="remark" sortable width="120" /> <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> @@ -174,39 +191,47 @@ <!-- 娣诲姞閫氳褰曢厤缃璇濇 --> <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> - <el-form ref="elForm" :model="contactList" :rules="rules" size="medium" label-width="100px"> + <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> <el-form-item label="鎴愬憳濮撳悕" prop="myName"> - <el-input v-model="contactList.myName" placeholder="璇疯緭鍏ユ垚鍛樺鍚�" clearable :style="{width: '100%'}" > - </el-input> + <el-input v-model="formDat.myName" placeholder="璇疯緭鍏ユ垚鍛樺鍚�" clearable :style="{width: '100%'}" > + </el-input> </el-form-item> <el-form-item label="绉板懠" prop="nickName"> - <el-input v-model="contactList.nickName" placeholder="璇疯緭鍏ョО鍛�" clearable :style="{width: '100%'}" ></el-input> + <el-input v-model="formDat.nickName" placeholder="璇疯緭鍏ョО鍛�" clearable :style="{width: '100%'}" ></el-input> </el-form-item> <el-form-item label="濮撳悕" prop="name"> - <el-input v-model="contactList.name" placeholder="璇疯緭鍏ュ鍚�" clearable :style="{width: '100%'}" > + <el-input v-model="formDat.name" placeholder="璇疯緭鍏ュ鍚�" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="宸ヤ綔鍗曚綅" prop="work"> - <el-input v-model="contactList.work" placeholder="璇疯緭鍏ュ伐浣滃崟浣�" clearable :style="{width: '100%'}" > + <el-input v-model="formDat.work" placeholder="璇疯緭鍏ュ伐浣滃崟浣�" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="鎵嬫満" prop="phone"> - <el-input v-model="contactList.phone" placeholder="璇疯緭鍏ユ墜鏈�" clearable :style="{width: '100%'}" > + <el-input v-model="formDat.phone" placeholder="璇疯緭鍏ユ墜鏈�" clearable :style="{width: '100%'}" > </el-input> </el-form-item> - <el-form-item label="鍏跺畠鑱旂郴鏂瑰紡" prop="wx"> - <el-input v-model="contactList.wx" placeholder="璇疯緭鍏ュ叾瀹冭仈绯绘柟寮�" clearable :style="{width: '100%'}" > + <el-form-item label="寰俊" prop="wx"> + <el-input v-model="formDat.wx" placeholder="璇疯緭鍏ュ井淇�" clearable :style="{width: '100%'}" > + </el-input> + </el-form-item> + <el-form-item label="QQ" prop="qq"> + <el-input v-model="formDat.qq" placeholder="璇疯緭鍏Q" clearable :style="{width: '100%'}" > + </el-input> + </el-form-item> + <el-form-item label="twitter" prop="twitter"> + <el-input v-model="formDat.twitter" placeholder="璇疯緭鍏witter" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="鏄惁甯歌仈绯�" prop="isAlways"> - <el-input v-model="contactList.isAlways" placeholder="鏄惁甯歌仈绯�" clearable :style="{width: '100%'}" > + <el-input v-model="formDat.isAlways" placeholder="鏄惁甯歌仈绯�" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="澶囨敞锛堟槸鍚﹀瓨鍦ㄩ噾閽卞叧绯伙級" prop="remark"> - <el-input v-model="contactList.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" ></el-input> + <el-input v-model="formDat.remark" placeholder="璇疯緭鍏ュ娉�" clearable :style="{width: '100%'}" ></el-input> </el-form-item> <h4 class="form-header">鐢靛瓙鍚嶇墖 </h4> @@ -288,7 +313,7 @@ -//鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁� +//瀵煎叆鎺ュ彛鍑芥暟 import {getContactList, getContactIdList, addContact,updateContact, delContact,uploadPic} from "@/api/contacts/index"; export default { name: "index", @@ -372,6 +397,13 @@ nickName:undefined, name:undefined, work:undefined, + + phone:undefined, + wx:undefined, + qq:undefined, + twitter:undefined, + isAlways:undefined, + remark:undefined, }, // 琛ㄥ崟鍙傛暟 form: {}, @@ -381,11 +413,11 @@ }, // 琛ㄥ崟鏍¢獙 rules: { - id: [{ - required: true, - message: '璇疯緭鍏d', - trigger: 'blur' - }], + // id: [{ + // required: true, + // message: '璇疯緭鍏d', + // trigger: 'blur' + // }], myName: [{ required: true, message: '璇疯緭鍏ユ垚鍛樺鍚�', @@ -402,11 +434,40 @@ trigger: 'blur' }], work: [{ - required: true, + // required: true, message: '璇疯緭鍏ュ伐浣滃崟浣�', trigger: 'blur' }], - + phone: [{ + // required: true, + message: '璇疯緭鍏ユ墜鏈�', + trigger: 'blur' + }], + wx: [{ + // required: true, + message: '璇疯緭鍏ュ井淇�', + trigger: 'blur' + }], + qq: [{ + // required: true, + message: '璇疯緭鍏Q', + trigger: 'blur' + }], + twitter: [{ + // required: true, + message: '璇疯緭鍏witter', + trigger: 'blur' + }], + isAlways: [{ + // required: true, + message: '鏄惁甯歌仈绯�', + trigger: 'blur' + }], + remark: [{ + // required: true, + message: '璇疯緭鍏ュ娉�', + trigger: 'blur' + }], }, typeOptions: [], }; @@ -514,7 +575,7 @@ /** 鏌ョ湅璇︾粏淇℃伅 */ handleCheck(row){ const id = row.id; - this.$router.push("/tongxunlu/contacts/propertyInfo/" + id); + this.$router.push("/tongxunlu/contacts/contactsInfo/" + id); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -522,7 +583,7 @@ let jd = true this.$router.push({ - path:"/tongxunlu/contacts/propertyInfo/" + id, + path:"/tongxunlu/contacts/contactsInfo/" + id, query:{ detail:jd } @@ -590,9 +651,9 @@ }, /** 瀵煎嚭鎸夐挳鎿嶄綔 */ handleExport() { - this.download('family/property/export', { + this.download('zfContact/export', { ...this.queryParams - }, `property_${new Date().getTime()}.xlsx`) + }, `zfContact_${new Date().getTime()}.xlsx`) } } }; diff --git a/ruoyi-ui/src/views/self/show.vue b/ruoyi-ui/src/views/self/show.vue index 01fe356..f28d412 100644 --- a/ruoyi-ui/src/views/self/show.vue +++ b/ruoyi-ui/src/views/self/show.vue @@ -1,29 +1,34 @@ <template> <div class="app-container"> - + <!-- 鍥炲埌椤堕儴--> + <el-backtop :bottom="150" :right="30"> + <el-button type="primary" circle + class="el-icon-top" + ></el-button> + </el-backtop> <h1 style="font-size:21px;padding-top:30px">涓汉绠�鍘�</h1> <el-divider /> -<!-- 鍩烘湰淇℃伅--> + <!-- 鍩烘湰淇℃伅--> <h2 style="font-size:16px">鍩烘湰淇℃伅</h2> <el-container> - <div style="padding-left:30px"> + <div > <el-container > <el-col > <el-form ref="elForm" :model="individualList" :rules="rules" size="medium" label-position="left" v-loading="loading" :data="individualList" @selection-change="handleSelectionChange" > - <el-row :span="7"> + <el-row :span="5"> <el-form-item label="濮撳悕" prop="nickName" label-width="40px"> <el-input v-model="individualList.nickName" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> </el-form-item> </el-row> - <el-row :span="7"> + <el-row :span="5"> <el-form-item label="鏇剧敤鍚�" prop="oldName" label-width="60px"> <el-input v-model="individualList.oldName" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> </el-form-item> </el-row> - <el-row :span="7"> + <el-row :span="5"> <el-form-item label="韬唤璇佸彿" prop="idNum" label-width="70px"> <el-input v-model="individualList.idNum" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> @@ -33,23 +38,23 @@ </el-col> </el-container> </div> - <div style="padding-left:70px"> + <div style="padding-left:30px"> <el-container> <el-col v-loading="loading" :data="individualList" @selection-change="handleSelectionChange"> <el-form ref="elForm" :model="individualList" :rules="rules" size="medium" label-position="left"> - <el-row :span="6"> + <el-row :span="5"> <el-form-item label="鎬у埆" prop="sex" label-width="40px"> - <el-input v-model="individualList.sex" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> + <el-input v-model="individualList.sex === 1 ? '鐢�':'濂�' " placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> </el-form-item> </el-row> - <el-row :span="6"> + <el-row :span="5"> <el-form-item label="姘戞棌" prop="nation"label-width="40px"> <el-input v-model="individualList.nation" placeholder="" clearable :style="{width: '100%'}":disabled="dsb"> </el-input> </el-form-item> </el-row> - <el-row :span="8"> + <el-row :span="5"> <el-form-item label="鑱旂郴鏂瑰紡" prop="phoneNumber" label-width="70px"> <el-input v-model="individualList.phoneNumber" placeholder="" clearable :style="{width: '100%'}":disabled="dsb"> </el-input> @@ -59,19 +64,19 @@ </el-col> </el-container> </div> - <div style="padding-left:70px"> + <div style="padding-left:30px"> <el-container> <el-col v-loading="loading" :data="individualList" @selection-change="handleSelectionChange"> <el-form ref="elForm" :model="individualList" :rules="rules" size="medium" label-position="left":disabled="dsb"> - <el-row :span="6"> + <el-row :span="5"> <el-form-item label="鍥界睄" prop="nationality" label-width="40px"> <el-input v-model="individualList.nationality" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> </el-form-item> </el-row> - <el-row :span="6"> + <el-row :span="5"> <el-form-item label="濠氬Щ鐘跺喌" prop="maritalStatus" label-width="70px"> - <el-input v-model="individualList.maritalStatus" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> + <el-input v-model="individualList.maritalStatus === 1 ? '宸插':'鏈'" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> </el-form-item> </el-row> @@ -80,101 +85,95 @@ </el-col> </el-container> </div> - <div style="padding-left:90px;padding-top:30px"> + <div style="padding-left:30px;padding-top:30px"> <el-col :span="6" :data="individualList"> - <div class="block" :model="individualList" > - <el-col v-model="individualList.url" prop="url"> + <div class="block" :model="individualList" > + <el-col v-model="individualList.url" prop="url"> <el-avatar shape="square" :size=200 > <el-image :src="'http://47.93.189.255:8080/'+ individualList.url" :fit="fit" ></el-image> </el-avatar> - </el-col> - </div> + </el-col> + </div> </el-col> -<!-- <el-row>--> -<!--<!– <el-table border style="width: 100%">–>--> -<!--<!– <el-table-column–>--> -<!--<!– prop="img"–>--> -<!--<!– v-model="individualList.img"–>--> -<!--<!– placeholder=""–>--> -<!--<!– width="180">–>--> -<!--<!– <template slot-scope="scope">–>--> -<!--<!– <img :src="scope.row.src" style="width:100px;height:50px;"/>–>--> -<!--<!– </template>–>--> -<!--<!– </el-table-column>–>--> + <!-- <el-row>--> + <!--<!– <el-table border style="width: 100%">–>--> + <!--<!– <el-table-column–>--> + <!--<!– prop="img"–>--> + <!--<!– v-model="individualList.img"–>--> + <!--<!– placeholder=""–>--> + <!--<!– width="180">–>--> + <!--<!– <template slot-scope="scope">–>--> + <!--<!– <img :src="scope.row.src" style="width:100px;height:50px;"/>–>--> + <!--<!– </template>–>--> + <!--<!– </el-table-column>–>--> -<!--<!– </el-table>–>--> -<!--<!– <el-upload :class="{uoloadSty:showBtnDealImg,disUoloadSty:noneBtnImg}"–>--> -<!--<!– ref="ref1"–>--> -<!--<!– action=""–>--> -<!--<!– :file-list="fileList"–>--> -<!--<!– list-type="picture-card"–>--> -<!--<!– accept="image/*"–>--> -<!--<!– :auto-upload="false"–>--> -<!--<!– :multiple="false"–>--> -<!--<!– :limit="limitCountImg">–>--> -<!--<!– <i class="el-icon-plus"></i>–>--> -<!--<!– </el-upload>–>--> -<!-- </el-row>--> + <!--<!– </el-table>–>--> + <!--<!– <el-upload :class="{uoloadSty:showBtnDealImg,disUoloadSty:noneBtnImg}"–>--> + <!--<!– ref="ref1"–>--> + <!--<!– action=""–>--> + <!--<!– :file-list="fileList"–>--> + <!--<!– list-type="picture-card"–>--> + <!--<!– accept="image/*"–>--> + <!--<!– :auto-upload="false"–>--> + <!--<!– :multiple="false"–>--> + <!--<!– :limit="limitCountImg">–>--> + <!--<!– <i class="el-icon-plus"></i>–>--> + <!--<!– </el-upload>–>--> + <!-- </el-row>--> </div> - <div style="padding-left:50px;padding-top:30px" > + <div style="padding-left:30px;padding-top:30px" > <el-container > -<!-- <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>--> + <!-- <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>--> -<!-- </template>--> + <!-- </template>--> - <el-row :span="2" style="flex-direction: column;"> + <el-row > <el-button type="primary" - @click="handleUpdate(scope.row)" v-hasPermi="['system:role:edit']" - - >缂栬緫</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--> + <!-- size="mini"--> + <!-- @command="(command) => handleCommand(command, scope.row)"--> + <!-- v-hasPermi="['system:role:edit']"> person:information:edit --> + <!-- <el-button--> + <!-- size="mini"--> + <!-- type="text"--> + <!-- icon="el-icon-d-arrow-right"--> + <!-- @click="handleCheck(scope.row)"--> + <!-- >鏌ョ湅璇︽儏</el-button>--> -<!-- </el-dropdown>--> + <!-- </el-dropdown>--> <br> - - <el-button - type="primary" - - @click="handleExport" - v-hasPermi="['self:user:export']" - >瀵煎嚭</el-button> - + <el-button + type="primary" + @click="handleExport" + v-hasPermi="['self:user:export']" + >瀵煎嚭</el-button> </el-row> </el-container> </div> -<!-- </el-dialog>--> + <!-- </el-dialog>--> </el-container> <el-container> - <div style="padding-left:30px"> + <div> <el-container> <el-col v-loading="loading" :data="individualList" @selection-change="handleSelectionChange"> <el-form ref="elForm" :model="individualList" :rules="rules" size="medium" label-position="left"> @@ -229,7 +228,7 @@ </div> </el-container> -<!--鎶樺彔闈㈡澘--> + <!--鎶樺彔闈㈡澘--> <el-collapse v-model="activeNames" @change="handleChange"> <el-collapse-item title="涓昏瀛︿範鍙婂伐浣滅粡鍘�" name="1" > <el-table v-loading="loading" :data="experienceList" @selection-change="handleSelectionChange"> @@ -250,7 +249,7 @@ size="mini" type="text" icon="el-icon-delete" - @click="handleDelete(scope.row)" + @click="handleExperienceDelete(scope.row)" v-hasPermi="['system:role:remove']" >鍒犻櫎</el-button> <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']"> @@ -284,7 +283,7 @@ size="mini" type="text" icon="el-icon-delete" - @click="handleDelete(scope.row)" + @click="handleCertificateDelete(scope.row)" v-hasPermi="['system:role:remove']" >鍒犻櫎</el-button> <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:role:edit']"> @@ -338,17 +337,17 @@ </el-collapse-item> </el-collapse> -<!-- 鑷紶--> + <!-- 鑷紶--> <div style="padding-top:30px"> <el-container> <div style="width:100%"><h2 style="font-size:15px" >鑷紶</h2></div> </el-container> <el-tabs type="border-card" v-model="activeName" @tab-click="handleClick" - v-loading="loading" :data="AutobiographyList" @selection-change="handleSelectionChange"> -<!-- <el-tab-pane label="鎬昏" name="0">--> + v-loading="loading" :data="AutobiographyList" @selection-change="handleSelectionChange"> + <!-- <el-tab-pane label="鎬昏" name="0">--> -<!-- </el-tab-pane>--> -<!-- <div :model="AutobiographyList">--> + <!-- </el-tab-pane>--> + <!-- <div :model="AutobiographyList">--> <el-tab-pane label="0~3宀�(濠村効鏈�)" name="1" > <el-input v-model="AutobiographyList.content" prop="content" placeholder="" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> @@ -360,13 +359,13 @@ <el-tab-pane label="22~25(鐮旂┒鐢�)" name="6"></el-tab-pane> <el-tab-pane label="26~ (宸ヤ綔)" name="7"></el-tab-pane> <el-tab-pane label="锛熷瞾缁撳" name="8"></el-tab-pane> -<!-- </div>--> -<!-- <el-tab-pane--> -<!-- v-for="(item, index) in AutobiographyTermList"--> -<!-- :key="index"--> -<!-- :name="item"--> -<!-- :label="item"--> -<!-- />--> + <!-- </div>--> + <!-- <el-tab-pane--> + <!-- v-for="(item, index) in AutobiographyTermList"--> + <!-- :key="index"--> + <!-- :name="item"--> + <!-- :label="item"--> + <!-- />--> </el-tabs> @@ -396,6 +395,7 @@ import {getIndividualList, getIndividualRelation, delIndividual, updateIndividual, addIndividual,listExperience,updateExperience, addExperience,delExperience} from "@/api/self/index"; import { + delCertificate, getAbroadList, getAutobiography, getAutobiographyList, @@ -720,12 +720,12 @@ ); //鍑哄浗鎯呭喌 getAbroadList(this.queryParams).then(response => { - // alert(123) - // console.log(response.data) - this.AbroadList = response.data; - this.total = response.data.total; - this.loading = false; - } + // alert(123) + // console.log(response.data) + this.AbroadList = response.data; + this.total = response.data.total; + this.loading = false; + } ); @@ -790,14 +790,14 @@ handleAdd() { this.reset(); this.open = true; - this.title = "娣诲姞瀹跺涵澶т簨璁颁俊鎭�"; + this.title = "娣诲姞涓汉淇℃伅"; }, /** 鏌ョ湅璇︾粏淇℃伅 */ handleCheck(row){ const id = row.id; - this.$router.push("/family1/bignote/familyeventInfo/" + id); + this.$router.push("/self/self/edit/" + id); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -805,7 +805,7 @@ let jd = true this.$router.push({ - path:"/self/self/edit" + id, + path:"/self/self/edit/" + id, query:{ detail:jd } @@ -816,7 +816,7 @@ alert(23) }, handleRemove(file) { - alert(323) + alert("鎿嶄綔鎴愬姛") }, handlePictureCardPreview(file) { this.dialogImageUrl = file.url; @@ -861,10 +861,10 @@ this.$refs["elForm"].validate(valid => { if (valid) { - addFamilyevent(this.formDat).then(response => { + addIndividual(this.formDat).then(response => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.open = false; - this.getList1(); + this.getList(); }); } }); @@ -892,13 +892,23 @@ }) }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { + /** 鍒犻櫎涓汉缁忓巻鎸夐挳鎿嶄綔 */ + handleExperienceDelete(row) { const Ids = row.id || this.ids; this.$modal.confirm('鏄惁纭鍒犻櫎搴忓彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() { - return delFamilyevent(Ids); + return delExperience(Ids); }).then(() => { - this.getList1(); + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 鍒犻櫎鎸佹湁鍑哄叆澧冭瘉浠舵儏鍐垫寜閽搷浣� */ + handleCertificateDelete(row) { + const Ids = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎搴忓彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() { + return delCertificate(Ids); + }).then(() => { + this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }).catch(() => {}); }, @@ -913,12 +923,18 @@ </script> <style> -.uoloadSty { - width:110px; - height:110px; - line-height:110px; +/*.uoloadSty {*/ +/* width:110px;*/ +/* height:110px;*/ +/* line-height:110px;*/ +/*}*/ +/*.disUoloadSty {*/ +/* display:none; !* 涓婁紶鎸夐挳闅愯棌 *!*/ +/*}*/ + +.el-icon-top { + background: url("src/assets/icons/top.png"); } -.disUoloadSty { - display:none; /* 涓婁紶鎸夐挳闅愯棌 */ -} + + </style> -- Gitblit v1.9.1