.env.development
@@ -1,10 +1,10 @@ # 页面标题 VUE_APP_TITLE = 张氏APP管理系统 VUE_APP_TITLE = 张氏APP # 开发环境配置 ENV = 'development' # 张氏APP管理系统/开发环境 # 本都都/开发环境 VUE_APP_BASE_API = '/dev-api' .env.production
@@ -1,8 +1,8 @@ # 页面标题 VUE_APP_TITLE = 张氏APP管理系统 VUE_APP_TITLE = 本都都 # 生产环境配置 ENV = 'production' # 张氏APP管理系统/生产环境 # 本都都/生产环境 VUE_APP_BASE_API = '/prod-api' .env.staging
@@ -1,10 +1,10 @@ # 页面标题 VUE_APP_TITLE = 张氏APP管理系统 VUE_APP_TITLE = 本都都 NODE_ENV = production # 测试环境配置 ENV = 'staging' # 张氏APP管理系统/测试环境 # 本都都/测试环境 VUE_APP_BASE_API = '/stage-api' package.json
@@ -1,7 +1,7 @@ { "name": "ruoyi", "version": "3.8.5", "description": "张氏APP管理系统", "description": "本都都", "author": "若依", "license": "MIT", "scripts": { ruoyi-ui/.env.development
@@ -1,5 +1,5 @@ # 页面标题 VUE_APP_TITLE = 张氏APP管理系统 VUE_APP_TITLE = 本都都 # 开发环境配置 ENV = 'development' ruoyi-ui/.env.production
@@ -1,5 +1,5 @@ # 页面标题 VUE_APP_TITLE = 张氏APP管理系统 VUE_APP_TITLE = 本都都 # 生产环境配置 ENV = 'production' @@ -7,4 +7,4 @@ # 若依管理系统/生产环境 VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_TRUE_API = 'http://47.93.189.255:8080/' VUE_APP_BASE_OTHER_API = 'http://47.93.189.255:8083/' VUE_APP_BASE_OTHER_API = 'http://47.93.189.255:8083/' ruoyi-ui/src/api/collection/index.js
@@ -62,3 +62,12 @@ responseType: 'blob' }) } //导入模板 export function downloadModel(data) { return request({ url: '/zfCollection/model', method: 'get', params: data, responseType: 'blob' }) } ruoyi-ui/src/assets/images/Group 445.pngruoyi-ui/src/router/index.js
@@ -230,6 +230,7 @@ } ] }, //魅宠详情 { path: '/familymodel/pet', ruoyi-ui/src/views/collection/collectionInfo.vue
@@ -29,8 +29,8 @@ <el-input v-model="formData.source" placeholder="请输入来源" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> </el-form-item> <el-form-item label="拥有者" prop="张三"> <el-input v-model="formData.owner" placeholder="请输入拥有者" clearable :style="{width: '100%'}" :disabled="dsb"> <el-form-item label="持有者" prop="owner"> <el-input v-model="formData.owner" placeholder="请输入持有者" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> </el-form-item> <el-form-item label="价值" prop="price"> @@ -240,7 +240,7 @@ }], owner: [{ required: true, message: '请输入拥有者', message: '请输入持有者', trigger: 'blur' }], price: [{ @@ -353,6 +353,10 @@ resetForm() { this.$refs['elForm'].resetFields() }, // //返回上一页 // goBack(){ // this.$router.push("/familymodel/collection/index" ); // }, handlePreview(file) { let formData = {'path':"/"+file.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")}; ruoyi-ui/src/views/collection/index.vue
@@ -74,6 +74,23 @@ </el-input> </el-form-item> <!-- <el-form-item label="类别" prop="type">--> <!-- <el-select--> <!-- v-model="queryParams.type"--> <!-- placeholder="所有类别"--> <!-- clearable--> <!-- style="width: 240px"--> <!-- @keyup.enter.native="handleQuery"--> <!-- >--> <!-- <el-option--> <!-- v-for="dict in typeOptions"--> <!-- :key="dict.value"--> <!-- :label="dict.label"--> <!-- :value="dict.value"--> <!-- />--> <!-- </el-select>--> <!-- </el-form-item>--> <el-cntainer> <el-col :span="9" > <el-form-item> @@ -85,10 +102,10 @@ </el-form-item> </el-col> </el-cntainer> <el-form-item label="拥有者" prop="owner" > <el-form-item label="持有者" prop="owner" > <el-input v-model="queryParams.owner" placeholder="请输入拥有者" placeholder="请输入持有者" clearable style="width: 240px" @keyup.enter.native="handleQuery"> @@ -157,7 +174,7 @@ plain icon="el-icon-download" size="mini" @click="handleExport" @click="handleExportModel" v-hasPermi="['family:note:export']" >导入模板下载</el-button> </el-col> @@ -179,22 +196,25 @@ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> </div> <el-table v-loading="loading" :data="collectionList" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> <el-table v-loading="loading" :data="collectionList" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> <el-table-column type="selection" width="25" align="center" /> <el-table-column label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="60"/> <el-table-column label="获得时间" prop="happenTime" sortable width="100" align="center"> <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '————'}}</template> </el-table-column> <el-table-column label="类别" prop="type" sortable :show-overflow-tooltip="true" width="90" align="center"> <template slot-scope="scope">{{scope.row.type? scope.row.type: '————'}}</template> </el-table-column> <el-form-item label="类别" prop="type"> <el-select v-model="formDat.type" placeholder="请选择类别" clearable :style="{width: '100%'}" > <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> <el-table-column label="名称" prop="name" sortable :show-overflow-tooltip="true" width="90" align="center" > <template slot-scope="scope">{{scope.row.name? scope.row.name: '————'}}</template> </el-table-column> <el-table-column label="来源" prop="source" sortable width="90" align="center" > <template slot-scope="scope">{{scope.row.source? scope.row.source: '————'}}</template> </el-table-column> <el-table-column label="拥有者" prop="owner" sortable width="110" align="center"> <el-table-column label="持有者" prop="owner" sortable width="110" align="center"> <template slot-scope="scope">{{scope.row.owner? scope.row.owner: '————'}}</template> </el-table-column> <el-table-column label="价值" prop="price" sortable width="90" align="center"> @@ -211,7 +231,7 @@ alt="" style="width: 35px; height: 35px;" fit="cover" v-if="scope.row.url !== ','" v-if="scope.row.url !== ',' " > <img class="el-upload-list__item-thumbnail" @@ -287,8 +307,8 @@ <el-input v-model="formDat.source" placeholder="请输入来源" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="拥有者" prop="owner"> <el-input v-model="formDat.owner" placeholder="请输入拥有者" clearable :style="{width: '100%'}" > <el-form-item label="持有者" prop="owner"> <el-input v-model="formDat.owner" placeholder="请输入持有者" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="价格" prop="price"> @@ -384,7 +404,7 @@ //导入接口函数 import {listCollection, getCollection, addCollection,updateCollection, delCollection,uploadPic} from "@/api/collection/index"; import {listCollection, getCollection, addCollection,updateCollection, delCollection,uploadPic,downloadModel} from "@/api/collection/index"; import {enload} from "@/api/doctor"; import {Message} from "element-ui"; @@ -494,7 +514,7 @@ }], owner: [{ required: true, message: '请输入拥有者', message: '请输入持有者', trigger: 'blur' }], price: [{ @@ -514,12 +534,29 @@ trigger: 'blur' }], }, typeOptions: [], typeOptions: [ { value: '选项1', label: '邮票' }, { value: '选项2', label: '日本军刀' }, { value: '选项3', label: '茅台酒' }, { value: '选项4', label: '红木' }, { value: '选项5', label: '纪念品' } ], }; }, created() { this.getList(); // this.getCateInfor() this.getCateInfor() // for (let i = 0; i < this.contactList.length; i++) { // this.formDat[i] = this.contactList[i]; // } @@ -555,16 +592,16 @@ ); }, /** 查询类别信息 */ // 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]}) // }) // }) // }, 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]}) }) }) }, handleRemove(file) { alert(323) @@ -706,7 +743,7 @@ /** 删除按钮操作 */ handleDelete(row) { const Ids = row.id || this.ids; this.$modal.confirm('是否确认删除编号为"' + Ids + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除数据项?').then(function() { return delCollection(Ids); }).then(() => { this.getList(); @@ -719,6 +756,14 @@ ...this.queryParams }, `zfCollection_${new Date().getTime()}.xlsx`) }, /** 导入模板下载按钮操作 */ handleExportModel() { this.downloadModel('zfCollection/model', { ...this.queryParams }, `zfCollection_model_${new Date().getTime()}.xlsx`) }, /** 导入操作*/ handleEnport(params){ var file = params.file; ruoyi-ui/src/views/contacts/contactsInfo.vue
@@ -2,17 +2,17 @@ <div class="app-container"> <div class="form-header mt"> <h4 class="dt h4">通讯录详细信息 </h4> <!-- <el-button v-if="isShow" type="primary" class="pt" icon="el-icon-edit" @click="handleEdit()" >编辑</el-button>--> <!-- <br>--> <!-- <el-button type="primary" class="pt" @click="handleExport"--> <!-- v-hasPermi="['self:user:export']" >导出</el-button>--> <!-- <el-button v-if="isShow" type="primary" class="pt" icon="el-icon-edit" @click="handleEdit()" >编辑</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="请输入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="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="myName"> <el-input v-model="formData.myName" placeholder="请输入成员姓名" clearable :style="{width: '100%'}" :disabled="dsb"> </el-input> @@ -99,10 +99,61 @@ </div> </el-upload> <!--<h4 class="form-header">其他附件 </h4> <el-upload action="" :file-list="fileListOther" class="upload-demo" multiple list-type="picture-card" :on-preview="handleFileCardPreview" :on-remove="handleRemove" :http-request="requestUpload" :show-file-list="true" > <i slot="default" class="el-icon-plus"></i> <div slot="file" slot-scope="{file}"> <img class="el-upload-list__item-thumbnail" src="../../assets/401_images/401.gif" alt="" style="width: 147px; height: 147px" fit="cover" > <span class="el-upload-list__item-actions"> <span v-if="isShow" class="el-upload-list__item-preview" @click="handleFileCardPreview(file)" > <i class="el-icon-zoom-in"></i> </span> <span v-if="isShow" @click="handleRemove(file)" class="el-upload-list__item-delete" > <i class="el-icon-download"></i> </span> <span v-if="isShow" class="el-upload-list__item-delete" @click="handleRemoveFile(file)" > <i class="el-icon-delete"></i> </span> </span> </div> </el-upload>--> <el-form-item size="large"> <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">修改</el-button> <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">修改</el-button> </el-form-item> </el-form> @@ -118,7 +169,6 @@ import {blobValidate} from "@/utils/ruoyi"; import errorCode from "@/utils/errorCode"; import {Message} from "element-ui"; export default { components: {}, props: [], @@ -126,7 +176,7 @@ return { cdi:"通讯录详细信息", udi:"通讯录信息详情", fot:[".jpg",".jif"], fot:[".jpg",".jif","png"], fileList:[ ], fileListOther:[ @@ -298,10 +348,24 @@ }) }, handleRemoveFile(file) { alert(23) for(let i = 0; i < this.fileListOther.length; i++) { if(this.fileListOther[i].url==file.url) this.$delete(this.fileListOther,i); } }, handleRemove(file) { alert(323) for(let i = 0; i < this.fileList.length; i++) { if(this.fileList[i].url==file.url) this.$delete(this.fileList,i); } }, handleFileCardPreview(file){ this.dialogFileUrl = file.url; const Base64 = require('js-base64').Base64 this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl)); myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300'); }, handlePictureCardPreview(file) { this.dialogImageUrl = file.url; @@ -315,7 +379,7 @@ download(formData).then(async (response) => { const isLogin = await blobValidate(response); let nt = new Date().getTime() let filename = 'property_'+nt+'.'+suffix let filename = 'doctor_'+nt+'.'+suffix const blob = new Blob([response]) saveAs(blob, filename) }) ruoyi-ui/src/views/contacts/index.vue
@@ -144,7 +144,7 @@ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> </div> <el-table v-loading="loading" :data="contactList" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> <el-table v-loading="loading" :data="contactList" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> <el-table-column type="selection" width="25" align="center" /> <el-table-column label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/> @@ -208,8 +208,6 @@ > </template> </el-table-column> <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> ruoyi-ui/src/views/doctor/doctorInfo.vue
@@ -380,7 +380,7 @@ download(formData).then(async (response) => { const isLogin = await blobValidate(response); let nt = new Date().getTime() let filename = 'property_'+nt+'.'+suffix let filename = 'doctor_'+nt+'.'+suffix const blob = new Blob([response]) saveAs(blob, filename) }) ruoyi-ui/src/views/doctor/index.vue
@@ -186,7 +186,7 @@ <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> </div> <el-table v-loading="loading" :data="doctorList" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> <el-table v-loading="loading" :data="doctorList" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> <el-table-column type="selection" width="25" align="center" /> <el-table-column label="序号" sortable type="index" align="center" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="60"/> <el-table-column label="类型" prop="type" sortable width="80" align="center"> @@ -231,7 +231,7 @@ alt="" style="width: 35px; height: 35px;" fit="cover" v-if="scope.row.url === ','" v-if="scope.row.url ===',' " > </template> </el-table-column> @@ -711,7 +711,7 @@ /** 删除按钮操作 */ handleDelete(row) { const Ids = row.id || this.ids; this.$modal.confirm('是否确认删除编号为"' + Ids + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除数据项?').then(function() { return delDoctor(Ids); }).then(() => { this.getList(); ruoyi-ui/src/views/genealogy/index.vue
@@ -1,15 +1,710 @@ <template> <div> <h1>你好</h1> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form-item label="" prop="phone wx qq twitter isAlways remark" > <el-input 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="nickName" style="padding-left:180px"> <el-input v-model="queryParams.nickName" 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="nickName"> <el-input v-model="queryParams.nickName" 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="sex"> <el-input v-model="queryParams.sex" 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="birth"> <el-input v-model="queryParams.birth" 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> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3; border-radius: 6px 6px 6px 6px;opacity:1;">搜索</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" style=" width: 65px; height: 32px;background: #FFDDE3; border-radius: 6px 6px 6px 6px;opacity:1; " >重置</el-button> </el-form-item> </el-form> <div> <div style="width: 149px; 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--> <!-- 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> <!-- <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>--> <!-- <el-col :span="1.2">--> <!-- <el-upload--> <!-- action=""--> <!-- class="upload-demo"--> <!-- :show-file-list="false"--> <!-- :http-request="handleEnport"--> <!-- >--> <!-- <el-button size="mini" type="primary"--> <!-- plain--> <!-- icon="el-icon-plus" >导入</el-button>--> <!-- </el-upload>--> <!-- </el-col>--> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> </div> <el-table v-loading="loading" :data="listRoot" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> <el-table-column type="selection" width="25" align="center" /> <el-table-column label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/> <el-table-column label="身份" prop="myName" sortable width="100" > <!-- <template slot-scope="scope">--> <!-- <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="100" align="center"/> <el-table-column label="性别" prop="sex" sortable width="100" align="center" > <template slot-scope="scope"> <span v-if="scope.row.sex===1">男</span> <span v-if="scope.row.sex===0">女</span> <span v-if="scope.row.sex== null">——</span> </template> </el-table-column> <el-table-column label="出生时间" prop="birth" sortable width="130" align="center" > <template slot-scope="scope">{{scope.row.birth? scope.row.birth: '————'}}</template> </el-table-column> <el-table-column label="全生命周期" prop="deadDay" sortable width="130" align="center" > <template slot-scope="scope">{{scope.row.deadDay? scope.row.deadDay: '————'}}</template> </el-table-column> <el-table-column label="手机号码" prop="phoneNumber" sortable width="130" align="center" > <template slot-scope="scope">{{scope.row.phoneNumber? scope.row.phoneNumber: '————'}}</template> </el-table-column> <el-table-column label="所在单位" prop="unit" sortable width="150" align="center" > <template slot-scope="scope">{{scope.row.unit? scope.row.unit: '————'}}</template> </el-table-column> <el-table-column label="配偶" prop="userId" sortable width="110" align="center" > <template slot-scope="scope">{{scope.row.phoneNumber? scope.row.phoneNumber: '————'}}</template> </el-table-column> <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-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)"> 查看详情</el-button> </template> </el-table-column> </el-table> <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" style="background: #FEF7FC;" @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="myName"> <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="formDat.nickName" placeholder="请输入称呼" clearable :style="{width: '100%'}" ></el-input> </el-form-item> <el-form-item label="姓名" prop="name"> <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="formDat.work" placeholder="请输入工作单位" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="手机" prop="phone"> <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="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="请输入QQ" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="twitter" prop="twitter"> <el-input v-model="formDat.twitter" placeholder="请输入twitter" clearable :style="{width: '100%'}" > </el-input> </el-form-item> <el-form-item label="是否常联系" prop="isAlways"> <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="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">点击上传</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"; import { Notification, MessageBox, Message, Loading } from 'element-ui' //导入接口函数 import {enload, uploadPic} from "@/api/contacts/index"; import {getRoot} from "@/api/root/index"; export default { name: "index" } name: "index", dicts: ['sys_normal_disable'], data() { return { // 遮罩层 disabled: false, loading: true, formData:[], // 选中数组 ids: [], // 非单个禁用 single: true, // 非多个禁用 multiple: true, // 显示搜索条件 showSearch: true, // 总条数 total: 0, // 家谱表格数据 listRoot: [], // 弹出层标题 title: "", // 是否显示弹出层 open: false, // 是否显示弹出层(数据权限) openDataScope: false, menuExpand: false, menuNodeAll: false, deptExpand: true, deptNodeAll: false, // 日期范围 dateRange: [], // 数据范围选项 fot:[".jpg",".jif"], fileList:[ ], fileListOther:[ ], dsb:true, btn:false, fit:['fill'], formDat: { //张氏一览表 userid:undefined, nickName:undefined, oldName:undefined, sex:undefined, nationality:undefined, nation:undefined, maritalStatus:undefined, phoneNumber:undefined, idNum:undefined, locationAddress:undefined, alwaysAddress:undefined, locationPolice:undefined, alwaysPolice:undefined, outStatus:undefined, idNo:undefined, unit:undefined, position:undefined, politicalOutlook:undefined, deadDay:undefined, spouseId:undefined, img:undefined, fatherId:undefined, momId:undefined, birth:undefined, familyId:undefined, secondFamilyId:undefined, childList:undefined, url: undefined, }, // 菜单列表 menuOptions: [], // 部门列表 deptOptions: [], // 查询参数 queryParams: { pageNum: 1, pageSize: 10, nickName:undefined, sex:undefined, birth:undefined, }, // searchVal:"", // 表单参数 form: {}, defaultProps: { children: "children", label: "label" }, // 表单校验 rules: { // id: [{ // required: true, // message: '请输入id', // trigger: 'blur' // }], nickName: [{ required: true, message: '请输入姓名', trigger: 'blur' }], sex: [{ required: true, message: '请输入性别', trigger: 'blur' }], bitrh: [{ // required: true, message: '请输入出生时间', trigger: 'blur' }], deadDay: [{ // required: true, message: '请输入全生命周期', trigger: 'blur' }], }, typeOptions: [], }; }, created() { this.getList(); // this.getCateInfor() // for (let i = 0; i < this.contactList.length; i++) { // this.formDat[i] = this.contactList[i]; // } }, methods: { // 取消按钮 cancelData() { this.open = false; this.reset(); }, //隔行变色 tableRowClassName({ row, rowIndex }) { if (rowIndex % 2 == 0) { return "statistics-warning-row1"; } else { return "statistics-warning-row"; } }, /** 查询通讯录列表 */ getList() { this.loading = true; // console.log(this.queryParams) // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { getRoot(this.queryParams).then(response => { // alert(123) // console.log(response.data) this.listRoot = response.data.data; this.total = response.data.total; this.loading = false; } ); }, /** 查询类别信息 */ // 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]}) // }) // }) // }, handleRemove(file) { alert(323) }, // 取消按钮 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 }, // //每次改变input框值时就改变this.myTableData的值 // inputChange() { //循环每一项 只要content的值含有输入的searchVal值,就加进newList;反之,就无东西加进newList // let newlist = this.formDat.filter( // (item) => item.content.indexOf(this.searchVal) > -1 // ); // this.contactList = newlist; // }, /** 新增按钮操作 */ handleAdd() { this.reset(); this.open = true; this.title = "添加通讯录详细信息"; }, /** 查看详细信息 */ handleCheck(row){ const id = row.id; this.$router.push("/familymodel/Contact/contactsInfo/" + id); }, /** 修改按钮操作 */ handleUpdate(row) { const id = row.id; let jd = true this.$router.push({ path:"/familymodel/Contact/contactsInfo/" + 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) { // // addContact(this.formDat).then(response => { // this.$modal.msgSuccess("新增成功"); // this.open = false; // this.getList(); // }); // } // }); // }, 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 delContact(Ids); }).then(() => { this.getList(); this.$modal.msgSuccess("删除成功"); }).catch(() => {}); }, /** 导出按钮操作 */ handleExport() { this.download('zfContact/export', { ...this.queryParams }, `zfContact_${new Date().getTime()}.xlsx`) }, /** 导入操作*/ // handleEnport(params){ // var file = params.file; // var formData = new FormData(); // formData.append('excelImport', file); // let _this = this // enload(formData).then(response => { // _this.getList(); // Message({ message: "导入成功", type: 'warning' }) // // }).catch(err) // { // Message({ message: "导入失败", type: 'error' }) // } // // } } }; </script> <style scoped> <style > .app-container{ background-color: #FEF7FC; } .el-table__row.statistics-warning-row { background: #E0EEFE; } .el-table__row.statistics-warning-row1 { background: #FFEFF2; } </style> ruoyi-ui/src/views/homeRoot/index.vue
@@ -20,7 +20,7 @@ <!-- 背景大图--> <img v-if="imageSrc" :src="imageSrc" alt="" class="background"/> <!-- 用户头像--> <div v-model="rootList.url" > <div v-model="rootList.url"> <el-avatar shape="circle" class="avater_1_1"> <el-img :src="'http://47.93.189.255:8080'+ rootList.url" ></el-img> @@ -85,7 +85,7 @@ <el-img :src="'http://47.93.189.255:8080'+ rootList.url" ></el-img> </el-avatar> <el-avatar shape="circle" class="avater_3_7" v-if="isShow_3"> <el-avatar shape="circle" class="avater_3_7" v-if="isShow_4"> <el-img :src="'http://47.93.189.255:8080'+ rootList.url" ></el-img> </el-avatar> ruoyi-ui/src/views/login.vue
@@ -1,7 +1,7 @@ <template> <div class="login Group_132"> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" style="margin-left: 0px;margin-right: 180px;"> <h3 class="title" style="margin-top: 80px;margin-right: 108px;margin-bottom: 0;margin-left: 109px;">欢迎来到张氏APP</h3> <h3 class="title" style="margin-top: 80px;margin-right: 108px;margin-bottom: 0;margin-left: 109px;">欢迎来到本都都</h3> <div class="second-box" style=" margin-top: 25px; margin-left: 140px; margin-right: 141px; @@ -126,6 +126,7 @@ <!-- 底部 --> <div class="el-login-footer"> <span>Copyright © GDUT All Rights Reserved.</span> <a href="https://beian.miit.gov.cn/" target="_blank" >粤ICP备2023050334号 </a> </div> </div> </template>