From 12abc32817cbf32732148e7581f6a2665a8d0dbb Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 02 九月 2025 14:55:30 +0800
Subject: [PATCH] 订单列表问题

---
 manager/src/views/order/order/orderList.vue |  200 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 195 insertions(+), 5 deletions(-)

diff --git a/manager/src/views/order/order/orderList.vue b/manager/src/views/order/order/orderList.vue
index 2303292..9e37593 100644
--- a/manager/src/views/order/order/orderList.vue
+++ b/manager/src/views/order/order/orderList.vue
@@ -102,7 +102,7 @@
           </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>
 
@@ -124,17 +124,91 @@
           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 {
@@ -380,16 +454,128 @@
         {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) {
@@ -425,7 +611,6 @@
           this.total = res.result.total;
         }
       });
-      this.total = this.data.length;
       this.loading = false;
     },
     // 璺宠浆璇︽儏椤甸潰
@@ -542,4 +727,9 @@
     background-color: #ffffff;
   }
 }
+.face {
+  width: 60px;
+  height: 60px;
+  border-radius: 50%; // 鍦嗗舰澶村儚
+}
 </style>

--
Gitblit v1.8.0