From 058c7c78326aaf9ff58e6bc63107dbfe50544e9e Mon Sep 17 00:00:00 2001 From: Tcsm <1377977403@qq.com> Date: 星期六, 15 四月 2023 17:30:43 +0800 Subject: [PATCH] 主要新增了家庭小医生模块 --- ruoyi-ui/src/views/contacts/index.vue | 416 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 269 insertions(+), 147 deletions(-) diff --git a/ruoyi-ui/src/views/contacts/index.vue b/ruoyi-ui/src/views/contacts/index.vue index 6b3eee4..46987c2 100644 --- a/ruoyi-ui/src/views/contacts/index.vue +++ b/ruoyi-ui/src/views/contacts/index.vue @@ -1,73 +1,89 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> - - <el-col :span="6" > - <el-input size="medium" v-model="input" placeholder="鎼滅储" clearable> + <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> - </el-col> - - <el-form-item label="鏃堕棿" style="padding-left:80px"> - <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> + <!-- v-model="queryParams.id"--> </el-form-item> - <el-form-item label="绫诲埆" prop="type"> - <el-select - v-model="queryParams.type" - placeholder="鎵�鏈夌被鍒�" + <el-form-item label="鎴愬憳濮撳悕" prop="myName" style="padding-left:180px"> + <el-input + v-model="queryParams.myName" + 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-cntainer> + <el-col :span="9" > + <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-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" > - <el-option - v-for="dict in typeOptions" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select> - </el-form-item> - <el-form-item label="鏍囬" prop="title"> - <el-input - v-model="queryParams.title" - placeholder="璇疯緭鍏ユ爣棰�" - clearable - style="width: 240px"title - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鎸佹湁浜�" prop="holder"> - <el-input - v-model="queryParams.holder" - 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> + <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">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> </el-form> + <div> + <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> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> @@ -104,20 +120,49 @@ </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> - - <el-table v-loading="loading" :data="propertyList" @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="绫诲瀷" prop="type" sortable :show-overflow-tooltip="true" width="150" /> - <el-table-column label="鏍囬" prop="title" sortable :show-overflow-tooltip="true" width="150" /> - <el-table-column label="瀛樺偍鍦板潃" prop="location" sortable width="100" /> - <el-table-column label="鎸佹湁浜�" prop="holder" sortable width="100" /> - <el-table-column label="鍏蜂綋浣嶇疆" prop="address" sortable width="100" /> - <el-table-column label="澶囨敞淇℃伅" prop="remark" sortable width="100" /> - <el-table-column label="鍒涘缓鏃堕棿" align="center" sortable prop="createTime" width="180"> + </div> + <el-table v-loading="loading" :data="contactList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="25" align="center" /> + <el-table-column label="鎴愬憳濮撳悕" prop="myName" sortable width="100" > <template slot-scope="scope"> - <span>{{ parseTime(scope.row.createTime) }}</span> + <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" > + <template slot-scope="scope">{{scope.row.work? scope.row.work: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="鎵嬫満" prop="phone" sortable width="110" > + <template slot-scope="scope">{{scope.row.phone? scope.row.phone: '鈥斺�斺�斺��'}}</template> + </el-table-column> + <el-table-column label="鍏跺畠鑱旂郴鏂瑰紡" prop="wx qq twitter" sortable width="130" > + <template slot-scope="scope"> + <span v-if="scope.row.wx || scope.row.qq || scope.row.twitter == true"> + {{scope.row.wx}}<br> + {{scope.row.qq}}<br> + {{scope.row.twitter}} + </span> + <span v-else>鈥斺�斺�斺��</span> + </template> + </el-table-column> + <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> + <span v-if="scope.row.isAlways== null">鈥斺��</span> + </template> + </el-table-column> + <el-table-column label="鐢靛瓙鍚嶇墖" prop="url" align="center" sortable width="180"> + <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" > + <template slot-scope="scope">{{scope.row.remark? scope.row.remark: '鈥斺�斺�斺��'}}</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"> @@ -156,40 +201,56 @@ :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="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 label="鎴愬憳濮撳悕" prop="myName"> + <el-input v-model="formDat.myName" placeholder="璇疯緭鍏ユ垚鍛樺鍚�" clearable :style="{width: '100%'}" > + </el-input> </el-form-item> - <el-form-item label="鏍囬" prop="title"> - <el-input v-model="formDat.title" placeholder="璇疯緭鍏ユ爣棰�" clearable :style="{width: '100%'}" ></el-input> + <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="location"> - <el-input v-model="formDat.location" placeholder="璇疯緭鍏ュ瓨鍌ㄥ湴鍧�" clearable :style="{width: '100%'}" > + <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="holder"> - <el-input v-model="formDat.holder" placeholder="璇疯緭鍏ユ寔鏈変汉" clearable :style="{width: '100%'}" > + <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="address"> - <el-input v-model="formDat.address" placeholder="璇疯緭鍏ュ叿浣撲綅缃�" clearable :style="{width: '100%'}" > + <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="remark"> + <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="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> + <h4 class="form-header">鐢靛瓙鍚嶇墖 </h4> <el-upload action="#" list-type="picture-card" @@ -238,7 +299,7 @@ :http-request="requestUpload" :show-file-list="true" > - <el-button type="primary">Click to upload</el-button> + <el-button type="primary">鐐瑰嚮涓婁紶</el-button> <template #tip> <div class="el-upload__tip"> </div> @@ -268,10 +329,10 @@ -//鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁� -import {listProperty, getPropertyInfo, delProperty, getCategory, addProperty, uploadPic} from "@/api/note/index"; +//瀵煎叆鎺ュ彛鍑芥暟 +import {getContactList, getContactIdList, addContact,updateContact, delContact,uploadPic} from "@/api/contacts/index"; export default { - name: "Role", + name: "index", dicts: ['sys_normal_disable'], data() { return { @@ -290,8 +351,8 @@ showSearch: true, // 鎬绘潯鏁� total: 0, - // 璧勪骇琛ㄦ牸鏁版嵁 - propertyList: [], + // 閫氳褰曡〃鏍兼暟鎹� + contactList: [], // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� @@ -313,14 +374,31 @@ ], dsb:true, btn:false, + fit:['fill'], + formDat: { - type: undefined, - title: undefined, - location: undefined, - holder: undefined, - address: undefined, - remark: undefined, + //閫氳褰� + id:undefined, + myName:undefined, + nickName:undefined, + name:undefined, + work:undefined, + + phone:undefined, + wx:undefined, + qq:undefined, + twitter:undefined, + isAlways:undefined, + remark:undefined, url: undefined, + + // type: undefined, + // title: undefined, + // location: undefined, + // holder: undefined, + // address: undefined, + + }, // 鑿滃崟鍒楄〃 menuOptions: [], @@ -330,13 +408,21 @@ queryParams: { pageNum: 1, pageSize: 10, - type:undefined, - title:undefined, - location:undefined, - holder:undefined, - address:undefined, - createTime:undefined + id:undefined, + myName:undefined, + nickName:undefined, + name:undefined, + work:undefined, + + phone:undefined, + wx:undefined, + qq:undefined, + twitter:undefined, + isAlways:undefined, + remark:undefined, }, + // searchVal:"", + // 琛ㄥ崟鍙傛暟 form: {}, defaultProps: { @@ -345,40 +431,60 @@ }, // 琛ㄥ崟鏍¢獙 rules: { - type: [{ + // id: [{ + // required: true, + // message: '璇疯緭鍏d', + // trigger: 'blur' + // }], + myName: [{ required: true, - message: '璇烽�夋嫨绫诲埆', - trigger: 'change' - }], - title: [{ - required: true, - message: '璇疯緭鍏ユ爣棰�', + message: '璇疯緭鍏ユ垚鍛樺鍚�', trigger: 'blur' }], - location: [{ + nickName: [{ required: true, - message: '璇疯緭鍏ュ瓨鍌ㄥ湴鍧�', + message: '璇疯緭鍏ョО鍛�', trigger: 'blur' }], - holder: [{ + name: [{ required: true, - message: '璇疯緭鍏ユ寔鏈変汉', + message: '璇疯緭鍏ュ鍚�', trigger: 'blur' }], - address: [{ - required: true, - message: '璇疯緭鍏ュ叿浣撲綅缃�', + work: [{ + // 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, + // required: true, message: '璇疯緭鍏ュ娉�', trigger: 'blur' - }], - createTime: [{ - required: true, - message: '璇烽�夋嫨鏃ユ湡閫夋嫨', - trigger: 'change' }], }, typeOptions: [], @@ -386,8 +492,10 @@ }, created() { this.getList(); - this.getCateInfor() - + // this.getCateInfor() + // for (let i = 0; i < this.contactList.length; i++) { + // this.formDat[i] = this.contactList[i]; + // } }, methods: { // 鍙栨秷鎸夐挳 @@ -395,15 +503,16 @@ this.open = false; this.reset(); }, - /** 鏌ヨ瑙掕壊鍒楄〃 */ + + /** 鏌ヨ閫氳褰曞垪琛� */ getList() { this.loading = true; // console.log(this.queryParams) // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { - listProperty(this.queryParams).then(response => { + getContactList(this.queryParams).then(response => { // alert(123) // console.log(response.data) - this.propertyList = response.data.data; + this.contactList = response.data.data; this.total = response.data.total; this.loading = false; @@ -411,16 +520,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) @@ -476,17 +585,25 @@ this.single = selection.length!=1 this.multiple = !selection.length }, + // //姣忔鏀瑰彉input妗嗗�兼椂灏辨敼鍙榯his.myTableData鐨勫�� + // inputChange() { //寰幆姣忎竴椤� 鍙content鐨勫�煎惈鏈夎緭鍏ョ殑searchVal鍊硷紝灏卞姞杩沶ewList锛涘弽涔嬶紝灏辨棤涓滆タ鍔犺繘newList + // let newlist = this.formDat.filter( + // (item) => item.content.indexOf(this.searchVal) > -1 + // ); + // this.contactList = newlist; + // }, + /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); this.open = true; - this.title = "娣诲姞璧勪骇璇︾粏淇℃伅"; + this.title = "娣诲姞閫氳褰曡缁嗕俊鎭�"; }, /** 鏌ョ湅璇︾粏淇℃伅 */ handleCheck(row){ const id = row.id; - this.$router.push("/family/note1/propertyInfo/" + id); + this.$router.push("/familymodel/Contact/contactsInfo/" + id); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -494,7 +611,7 @@ let jd = true this.$router.push({ - path:"/family/note1/propertyInfo/" + id, + path:"/familymodel/Contact/contactsInfo/" + id, query:{ detail:jd } @@ -519,7 +636,7 @@ this.$refs["elForm"].validate(valid => { if (valid) { - addProperty(this.formDat).then(response => { + addContact(this.formDat).then(response => { this.$modal.msgSuccess("鏂板鎴愬姛"); this.open = false; this.getList(); @@ -553,8 +670,8 @@ /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { const Ids = row.id || this.ids; - this.$modal.confirm('鏄惁纭鍒犻櫎璧勪骇缂栧彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() { - return delProperty(Ids); + this.$modal.confirm('鏄惁纭鍒犻櫎缂栧彿涓�"' + Ids + '"鐨勬暟鎹」锛�').then(function() { + return delContact(Ids); }).then(() => { this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); @@ -562,10 +679,15 @@ }, /** 瀵煎嚭鎸夐挳鎿嶄綔 */ handleExport() { - this.download('family/property/export', { + this.download('zfContact/export', { ...this.queryParams - }, `property_${new Date().getTime()}.xlsx`) + }, `zfContact_${new Date().getTime()}.xlsx`) } } }; </script> + +<style scoped> + + +</style> -- Gitblit v1.9.1