| | |
| | | <template> |
| | | <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="identity" > |
| | | <el-select |
| | |
| | | </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-select v-model="queryParams.sex" placeholder="请选择性别" clearable |
| | | style="width: 240px" @keyup.enter.native="handleQuery"> |
| | | <el-option v-for="item in typeOption" |
| | | :key="item.value" :label="item.label" :value="item.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="生日" prop="birth"> |
| | | <el-input |
| | | v-model="queryParams.birth" |
| | | placeholder="请输入生日" |
| | | clearable |
| | | style="width: 240px" |
| | | |
| | | <el-form-item label="生日" prop="birth deadDay"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px; |
| | | height: 30px; |
| | | background: #FFFFFF; |
| | | border-radius: 14px 14px 14px 14px; |
| | | opacity: 0.5; |
| | | border: 1px solid rgba(0,0,0,0.25);" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | @keyup.enter.native="handleQuery" |
| | | > |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | ></el-date-picker> |
| | | |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button size="mini" @click="handleQuery" style=" width: 67px;height: 27px;background: #FFDDE3; |
| | | border-radius: 7px 7px 7px 7px;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"--> |
| | |
| | | <!-- 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-button>--> |
| | | <!-- </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-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | <el-table-column type="selection" width="25" align="center" /> |
| | | <el-table v-loading="loading" border :data="listRoot" :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column fixed label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/> |
| | | |
| | | <el-table-column label="身份" prop="identity" sortable width="100" > |
| | | <template slot-scope="scope"> |
| | | <span>第{{scope.row.identity}}代</span> |
| | | <template slot-scope="scope" > |
| | | <span v-if="scope.row.isMyFamily==1">第{{scope.row.identity}}代</span> |
| | | <span v-else>——</span> |
| | | </template> |
| | | <!-- <template slot-scope="scope">{{ getSrc(scope.row.identity) }}</template>--> |
| | | </el-table-column> |
| | | <el-table-column label="姓名" prop="nickName" sortable :show-overflow-tooltip="true" width="100" align="center"/> |
| | | <el-table-column label="姓名" prop="nickName" sortable :show-overflow-tooltip="true" width="100" align="center"> |
| | | <template slot-scope="scope" > |
| | | |
| | | <el-button @click="handleCheck(scope.row)">{{scope.row.nickName}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <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===0">男</span> |
| | | <span v-if="scope.row.sex===1">女</span> |
| | | <span v-if="scope.row.sex== null">——</span> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <template slot-scope="scope">{{scope.row.spouseName? scope.row.spouseName: '————'}}</template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope" v-if="scope.row.roleId !== 1"> |
| | | |
| | | |
| | | <el-button |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-d-arrow-right" |
| | | @click="handleCheck(scope.row)"> |
| | | 查看详情</el-button> |
| | | 查看详情 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total" |
| | | 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="identity"> |
| | | <el-input v-model="formDat.identity" 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="sex"> |
| | | <el-input v-model="formDat.sex" placeholder="请输入姓名" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出生时间" prop="birth"> |
| | | <el-input v-model="formDat.birth" placeholder="请输入工作单位" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="全生命周期" prop="deadDay"> |
| | | <el-input v-model="formDat.deadDay" placeholder="请输入手机" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="手机号码" prop="phoneNumber"> |
| | | <el-input v-model="formDat.phoneNumber" placeholder="请输入微信" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所在单位" prop="unit"> |
| | | <el-input v-model="formDat.unit" placeholder="请输入QQ" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="配偶" prop="spouseName"> |
| | | <el-input v-model="formDat.spouseName" placeholder="请输入twitter" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | </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> |
| | |
| | | //导入接口函数 |
| | | import {enload, uploadPic} from "@/api/contacts/index"; |
| | | import {getRoot,listUserAll} from "@/api/root/index"; |
| | | |
| | | |
| | | export default { |
| | | name: "index", |
| | | dicts: ['sys_normal_disable'], |
| | |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | pageSize: 10, // 每页显示数据条数 |
| | | pageNum: 1, // 当前页码 // 总条数 |
| | | total: 0, |
| | | // 家谱表格数据 |
| | | listRoot: [], |
| | |
| | | dateRange: [], |
| | | // 数据范围选项 |
| | | fot:[".jpg",".jif"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | |
| | | ], |
| | | fileList:[], |
| | | fileListOther:[], |
| | | dsb:true, |
| | | btn:false, |
| | | fit:['fill'], |
| | | |
| | | uploading: false, |
| | | formDat: { |
| | | //张氏一览表 |
| | | userid:undefined, |
| | |
| | | secondFamilyId:undefined, |
| | | childList:undefined, |
| | | identity:undefined, |
| | | isMyFamily:undefined, |
| | | url: undefined, |
| | | |
| | | }, |
| | |
| | | nickName:undefined, |
| | | sex:undefined, |
| | | birth:undefined, |
| | | clanId: undefined |
| | | }, |
| | | // searchVal:"", |
| | | |
| | |
| | | }], |
| | | |
| | | }, |
| | | typeOption: [{ |
| | | value: '0', |
| | | label: '男', |
| | | }, |
| | | { |
| | | value: '1', |
| | | label: '女', |
| | | }], |
| | | typeOptions: [{ |
| | | value:'1', |
| | | label:'第1代' |
| | |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | // this.getCateInfor() |
| | | // for (let i = 0; i < this.contactList.length; i++) { |
| | | // this.formDat[i] = this.contactList[i]; |
| | | // } |
| | | }, |
| | | methods: { |
| | | // 取消按钮 |
| | |
| | | return "statistics-warning-row"; |
| | | } |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "添加证件/荣誉/资质信息"; |
| | | }, |
| | | /** 查询通讯录列表 */ |
| | | /** 查询家谱列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | // console.log(this.queryParams) |
| | | //alert(23) |
| | | |
| | | this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] |
| | | this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] |
| | | this.queryParams.clanId = this.$store.state.user.clanId |
| | | this.listRoot = [] |
| | | // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | listUserAll(this.queryParams).then(response => { |
| | | // alert(123) |
| | | // console.log(response.data) |
| | | // alert(76) |
| | | this.listRoot = response.data.data; |
| | | // alert(this.listRoot) |
| | | this.total = response.data.length; |
| | | // alert(this.total) |
| | | this.total = response.data.total; |
| | | // this.pageNum=1; |
| | | // this.pageSize=10; |
| | | // this.pageNum = response.data.pageNum; |
| | | 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]}) |
| | | }) |
| | | }) |
| | | handlePageChange(currentPage) { |
| | | this.pageNum = currentPage; // 根据 currentPage 计算出 pageNum 值 |
| | | this.getList(); |
| | | }, |
| | | //身份选择 |
| | | getSrc(identity) { |
| | |
| | | return '其它' |
| | | } |
| | | }, |
| | | |
| | | handleRemove(file) { |
| | | alert(323) |
| | | getRowId(row) |
| | | { |
| | | return row.id |
| | | }, |
| | | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | |
| | | // 取消按钮(数据权限) |
| | | cancelDataScope() { |
| | | this.openDataScope = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | |
| | | deptCheckStrictly: true, |
| | | remark: undefined |
| | | }; |
| | | this.resetForm("form"); |
| | | this.resetForm("elForm"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | |
| | | this.$router.push("/familymodel/jiagenwang/personInfo/" + id); |
| | | }, |
| | | |
| | | |
| | | 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('/self/user/export/genealogy', { |
| | |
| | | } |
| | | }, |
| | | |
| | | /** 导入操作*/ |
| | | // 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 > |
| | | <style scoped> |
| | | .app-container{ |
| | | background-color: #FEF7FC; |
| | | } |