| | |
| | | </div> |
| | | </template> |
| | | <template slot="nickName" slot-scope="{ row }"> |
| | | <div style="width: 100%" @click="handleNickNameClick(row)"> |
| | | <div style="width: 100%;height:20px;min-width: 50px" @click="handleNickNameClick(row)"> |
| | | <span >{{row.nickName}}</span> |
| | | </div> |
| | | |
| | |
| | | show-sizer |
| | | ></Page> |
| | | </Row> |
| | | |
| | | <!-- 修改模态框 --> |
| | | <Modal v-model="descFlag" width="500"> |
| | | |
| | | <!-- 自定义标题插槽 --> |
| | | <div slot="header" :style="{ color: titleColor, fontSize: '16px', fontWeight: 'bold' }"> |
| | | {{ descTitle }} |
| | | </div> |
| | | <Form ref="form" :model="form" :rules="ruleValidate" :label-width="80"> |
| | | |
| | | <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> |
| | | <input type="file" style="display: none" id="file" /> |
| | | </FormItem> |
| | | <FormItem label="用户名" prop="name"> |
| | | <Input v-model="form.username" style="width: 200px" disabled /> |
| | | </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="sex"> |
| | | <RadioGroup type="button" button-style="solid" v-model="form.sex"> |
| | | <Radio :label="1"> |
| | | <span>男</span> |
| | | </Radio> |
| | | <Radio :label="0"> |
| | | <span>女</span> |
| | | </Radio> |
| | | </RadioGroup> |
| | | </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> |
| | | <div slot="footer"> |
| | | <Button @click="descFlag = false">取消</Button> |
| | | <Button type="primary" @click="handleSubmitModal" :disabled="submitDisabled"> |
| | | 确定 |
| | | </Button> |
| | | </div> |
| | | </Modal> |
| | | <Modal width="1200px" v-model="picModelFlag"> |
| | | <ossManage @callback="callbackSelected" :isComponent="true" :initialize="picModelFlag" ref="ossManage" /> |
| | | </Modal> |
| | | |
| | | <multipleMap ref="map" @callback="selectedRegion" /> |
| | | </Card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import multipleMap from "@/components/map/multiple-map"; |
| | | import ossManage from "@/views/sys/oss-manage/ossManage"; |
| | | import * as API_Order from "@/api/order"; |
| | | import JsonExcel from "vue-json-excel"; |
| | | import * as API_Member from "@/api/member.js"; |
| | | import { getTags } from "@/api/tag.js"; |
| | | export default { |
| | | name: "orderList", |
| | | components: { |
| | | "download-excel": JsonExcel, |
| | | ossManage, |
| | | multipleMap, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | {title: '已关闭', value: 'CANCELLED'}, |
| | | |
| | | ], |
| | | currentStatus: '' |
| | | currentStatus: '', |
| | | descTitle: "", // modal标题 |
| | | descFlag: false, //编辑查看框 |
| | | form:{}, |
| | | ruleValidate:{}, |
| | | |
| | | selectTagIds: [], |
| | | selectTags: [], |
| | | defaultPic: require('@/assets/default.png'), |
| | | selectLoading:false, |
| | | picModelFlag: false, // 选择图片 |
| | | options: [], |
| | | titleColor:'#333', // 默认标题颜色 |
| | | submitDisabled:false, |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleNickNameClick(row){ |
| | | this.$options.filters.customRouterPush({ name: "member-detail", query: { id: row.memberId } }) |
| | | // 选中的图片 |
| | | callbackSelected(val) { |
| | | console.log(val) |
| | | this.picModelFlag = false; |
| | | this.form.face = val.url; |
| | | }, |
| | | handleNickNameClick(row){ |
| | | this.titleColor = '#333' |
| | | this.form = {}; |
| | | this.selectTagIds = []; |
| | | this.selectTags= []; |
| | | this.descTitle =''; |
| | | this.descFlag = true; |
| | | this.getMemberInfo(row.memberId); |
| | | }, |
| | | /** |
| | | * 查询查看会员详情 |
| | | */ |
| | | async getMemberInfo(id) { |
| | | this.submitDisabled = false; |
| | | var that = this; |
| | | await 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.descTitle = res.result.nickName; |
| | | this.$set(this, "form", res.result); |
| | | }else{ |
| | | //查询到用户不存在,或已删除情况 |
| | | this.descTitle = "用户已删除" |
| | | this.titleColor ='#ff4d4f'; |
| | | this.submitDisabled = true; |
| | | } |
| | | console.log(this.form) |
| | | |
| | | }); |
| | | }, |
| | | remoteMethod(query) { |
| | | this.selectLoading = true; |
| | | var params = { |
| | | "tagTypeKey": "USER", |
| | | "pageNumber": 1, |
| | | "pageSize": 500 |
| | | } |
| | | getTags(params).then(res => { |
| | | this.options = res.data; |
| | | this.selectLoading = false; |
| | | }); |
| | | }, |
| | | handleSubmitModal(){ |
| | | 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 ? '' : |
| | | time.getFullYear() + "-" + (time.getMonth() + 1) + "-" + time.getDate(); |
| | | let submit = { |
| | | regionId, |
| | | region, |
| | | nickName, |
| | | username, |
| | | sex, |
| | | birthday, |
| | | face, |
| | | id |
| | | }; |
| | | |
| | | submit.tags = this.selectTagIds |
| | | if (newPassword) { |
| | | submit.password = this.md5(newPassword); |
| | | } |
| | | API_Member.updateMember(submit).then((res) => { |
| | | if (res.result) { |
| | | this.$Message.success("修改成功!"); |
| | | this.descFlag = false; |
| | | this.getDataList(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 选中的地址 |
| | | selectedRegion(val) { |
| | | 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) |
| | | |
| | | } |
| | | else { |
| | | this.$set(this.form, 'region', val.data.addr) |
| | | this.$set(this.form, 'regionId', val.data.addrId) |
| | | } |
| | | }, |
| | | |
| | | // 初始化数据 |
| | | init() { |
| | | this.getDataList(); |
| | | this.remoteMethod("") |
| | | |
| | | }, |
| | | // 分页 改变页码 |
| | | changePage(v) { |
| | |
| | | this.total = res.result.total; |
| | | } |
| | | }); |
| | | this.total = this.data.length; |
| | | this.loading = false; |
| | | }, |
| | | // 跳转详情页面 |
| | |
| | | background-color: #ffffff; |
| | | } |
| | | } |
| | | .face { |
| | | width: 60px; |
| | | height: 60px; |
| | | border-radius: 50%; // 圆形头像 |
| | | } |
| | | </style> |