From 0d71873262b6f670eb1814803a04f03cb8fb797e Mon Sep 17 00:00:00 2001 From: peng <peng.com> Date: 星期四, 11 九月 2025 18:33:17 +0800 Subject: [PATCH] 修改封面限制数量 --- manager/src/views/member/list/index.vue | 111 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 88 insertions(+), 23 deletions(-) diff --git a/manager/src/views/member/list/index.vue b/manager/src/views/member/list/index.vue index 3611c63..fae9bd4 100644 --- a/manager/src/views/member/list/index.vue +++ b/manager/src/views/member/list/index.vue @@ -14,6 +14,12 @@ <Form-item label="鑱旂郴鏂瑰紡" prop="mobile"> <Input type="text" v-model="searchForm.mobile" placeholder="璇疯緭鍏ヤ細鍛樿仈绯绘柟寮�" clearable style="width: 200px" /> </Form-item> + <Form-item label="鐢ㄦ埛鏍囩" prop="tags"> + <Select v-model="searchForm.tagIds" multiple filterable :loading="selectLoading" style="width:200px;"> + <Option v-for="item in options" :key="item.id" :label="item.tagName" :value="item.id"></Option> + </Select> + </Form-item> + <Button @click="handleSearch" class="search-btn" type="primary" icon="ios-search">鎼滅储</Button> </Form> </Row> @@ -52,14 +58,14 @@ <Modal v-model="descFlag" :title="descTitle" @on-ok="handleSubmitModal" width="500"> <Form ref="form" :model="form" :rules="ruleValidate" :label-width="80"> - <Input v-model="form.id" v-show="false"/> + <Input v-model="form.id" v-show="false" /> <FormItem label="澶村儚"> <img :src="form.face || defaultPic" class="face" /> <Button type="text" class="upload" @click="() => { - this.picModelFlag = true; - this.$refs.ossManage.selectImage = true; - }">淇敼</Button> + this.picModelFlag = true; + this.$refs.ossManage.selectImage = true; + }">淇敼</Button> <input type="file" style="display: none" id="file" /> </FormItem> <FormItem label="鐢ㄦ埛鍚�" prop="name"> @@ -67,6 +73,14 @@ </FormItem> <FormItem label="鐢ㄦ埛鏄电О" prop="name"> <Input v-model="form.nickName" style="width: 200px" /> + </FormItem> + <FormItem label="鏍囩" prop="tags"> + <Select v-model="selectTagIds" multiple filterable :loading="selectLoading" style="width:200px;"> + <Option v-for="item in options" :key="item.id" :label="item.tagName" :value="item.id"></Option> + </Select> + </FormItem> + <FormItem label="鐢ㄦ埛鑷畾涔夋爣绛�" prop="customerTags"> + <span class="inf0o" v-for="(item,index) in memberTags" :key="index">{{item.tagName}}<span v-if="index < memberTags.length - 1">, </span></span> </FormItem> <FormItem label="鎬у埆" prop="sex"> <RadioGroup type="button" button-style="solid" v-model="form.sex"> @@ -78,25 +92,22 @@ </Radio> </RadioGroup> </FormItem> - <FormItem label="淇敼瀵嗙爜" prop="password"> - <Input type="password" style="width: 220px" password v-model="form.newPassword" /> - </FormItem> +<!-- <FormItem label="淇敼瀵嗙爜" prop="password">--> +<!-- <Input type="password" style="width: 220px" password v-model="form.newPassword" />--> +<!-- </FormItem>--> <FormItem label="鐢熸棩" prop="birthday"> <DatePicker type="date" format="yyyy-MM-dd" v-model="form.birthday" style="width: 220px"></DatePicker> </FormItem> <FormItem label="鎵�鍦ㄥ湴" prop="mail"> {{ form.region || '鏆傛棤鍦板潃' }} - - <Button style="margin-left: 10px;" @click="$refs.map.open()">閫夋嫨</Button> - </FormItem> </Form> </Modal> <Modal width="1200px" v-model="picModelFlag"> <ossManage @callback="callbackSelected" :isComponent="true" :initialize="picModelFlag" ref="ossManage" /> </Modal> - <multipleMap ref="map" @callback="selectedRegion"/> + <multipleMap ref="map" @callback="selectedRegion" /> </div> </template> @@ -105,6 +116,8 @@ import * as API_Member from "@/api/member.js"; import ossManage from "@/views/sys/oss-manage/ossManage"; import * as RegExp from "@/libs/RegExp.js"; +import { getTags } from "@/api/tag.js"; +import { detailById } from "@/api/memberCustomerTag.js" export default { name: "member", @@ -114,12 +127,16 @@ }, data() { return { - defaultPic:require('@/assets/default.png'), + memberTags:[], + defaultPic: require('@/assets/default.png'), descTitle: "", // modal鏍囬 descFlag: false, //缂栬緫鏌ョ湅妗� loading: true, // 琛ㄥ崟鍔犺浇鐘舵�� addFlag: false, // modal鏄鹃殣鎺у埗 - + selectLoading: false, + options: [], + selectTagIds: [], + selectTags: [], addMemberForm: { // 娣诲姞鐢ㄦ埛琛ㄥ崟 mobile: "", @@ -134,6 +151,7 @@ username: "", mobile: "", disabled: "OPEN", + tagIds:[], }, picModelFlag: false, // 閫夋嫨鍥剧墖 form: {}, // 琛ㄥ崟鏁版嵁 @@ -321,9 +339,16 @@ }, }, methods: { + getMemberTags(id){ + detailById(id).then(res =>{ + if (res.code === 200){ + this.memberTags = res.data; + } + }); + }, // 鍥炶皟缁欑埗绾� callback(val, index) { - this.selectMember.forEach(item=>{item.___selected = false}) + this.selectMember.forEach(item => { item.___selected = false }) this.$set(val, "___selected", !val.___selected); console.log(val.___selected); console.log(this.selectMember); @@ -378,9 +403,10 @@ }, //鏌ョ湅璇︽儏淇敼 editPerm(val) { + this.form = {}; this.descTitle = `鏌ョ湅鐢ㄦ埛 ${val.username}`; this.descFlag = true; - + this.getMemberTags(val.id); this.getMemberInfo(val.id); }, addMember() { @@ -391,8 +417,16 @@ * 鏌ヨ鏌ョ湅浼氬憳璇︽儏 */ getMemberInfo(id) { + var that = this; API_Member.getMemberInfoData(id).then((res) => { if (res.result) { + debugger + that.selectTags = [] + that.selectTagIds = [] + res.result.tags.forEach(element => { + that.selectTags.push(element.tagName) + that.selectTagIds.push(element.tagId) + }); this.$set(this, "form", res.result); } }); @@ -410,6 +444,7 @@ }, // 閫変腑鐨勫浘鐗� callbackSelected(val) { + console.log(val) this.picModelFlag = false; this.form.face = val.url; }, @@ -432,17 +467,17 @@ // 閫変腑鐨勫湴鍧� selectedRegion(val) { - if(val.type === 'select'){ + if (val.type === 'select') { const paths = val.data.map(item => item.name).join(',') const ids = val.data.map(item => item.id).join(',') - this.$set(this.form,'region',paths) - this.$set(this.form,'regionId',ids) + this.$set(this.form, 'region', paths) + this.$set(this.form, 'regionId', ids) } - else{ - this.$set(this.form,'region',val.data.addr) - this.$set(this.form,'regionId',val.data.addrId) + else { + this.$set(this.form, 'region', val.data.addr) + this.$set(this.form, 'regionId', val.data.addrId) } }, //鏌ョ湅浼氬憳 @@ -474,9 +509,10 @@ // 鎻愪氦淇敼鏁版嵁 handleSubmitModal() { - const { nickName, sex, username, face, newPassword,id,regionId,region } = this.form; + debugger + const { nickName, sex, username, face, newPassword, id, regionId, region } = this.form; let time = new Date(this.form.birthday); - let birthday = this.form.birthday=== undefined?'': + let birthday = this.form.birthday === undefined ? '' : time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate(); let submit = { regionId, @@ -489,6 +525,7 @@ id }; + submit.tags = this.selectTagIds if (newPassword) { submit.password = this.md5(newPassword); } @@ -499,9 +536,35 @@ } }); }, + selectTag(e) { + debugger + if (this.selectTagIds.indexOf(e.value) != -1) { + this.selectTagIds.splice(this.selectTagIds.indexOf(e.value), 1) + this.selectTags.splice(this.selectTags.indexOf(e.label), 1) + } + else { + this.selectTagIds.push(e.value) + this.selectTags.push(e.label) + } + console.log(this.selectTags); + + }, + remoteMethod(query) { + this.selectLoading = true; + var params = { + "tagTypeKey": "USER", + "pageNumber": 1, + "pageSize": 500 + } + getTags(params).then(res => { + this.options = res.data; + this.selectLoading = false; + }); + }, }, mounted() { this.getData(); + this.remoteMethod("") }, }; </script> @@ -509,9 +572,11 @@ /deep/ .ivu-table-wrapper { width: 100%; } + /deep/ .ivu-card { width: 100%; } + .face { width: 60px; height: 60px; -- Gitblit v1.8.0