htc 6 дней назад
Родитель
Сommit
a228049abb

BIN
public/favicon.ico


+ 14 - 6
src/components/editor/index.vue

@@ -64,7 +64,7 @@ const toolbarOptions = [
 export default {
 export default {
     data() {
     data() {
         return {
         return {
-            editorContent: '',
+            editorContent: this.content || '',
             editorOption: {
             editorOption: {
                 placeholder: '请在这里输入',
                 placeholder: '请在这里输入',
                 theme: 'snow', //主题 snow/bubble
                 theme: 'snow', //主题 snow/bubble
@@ -91,17 +91,25 @@ export default {
             },
             },
             url: `${
             url: `${
         window.SITE_CONFIG["apiURL"]
         window.SITE_CONFIG["apiURL"]
-      }/oss/file/aliyunUpload?access_token=${Cookies.get("access_token")}`,
+      }/sys/oss/upload?token=${Cookies.get("token")}`,
         }
         }
     },
     },
     props: ['content'],
     props: ['content'],
     components: {
     components: {
         quillEditor
         quillEditor
     },
     },
+    watch: {
+        content(newValue) {
+            // 检查新值是否与当前编辑器内容不同,避免不必要的更新和光标跳动
+            if (newValue !== this.editorContent) {
+                this.editorContent = newValue;
+            }
+        }
+    },
     methods: {
     methods: {
-        init() {
-            this.editorContent = this.content || '';
-        },
+        // init() {
+        //     this.editorContent = this.content || '';
+        // },
         beforeUpload(file) {},
         beforeUpload(file) {},
         // 值发生变化
         // 值发生变化
         onEditorChange(editor) {
         onEditorChange(editor) {
@@ -115,7 +123,7 @@ export default {
                 // 获取光标所在位置
                 // 获取光标所在位置
                 let length = quill.getSelection().index;
                 let length = quill.getSelection().index;
                 // 插入图片,res为服务器返回的图片链接地址
                 // 插入图片,res为服务器返回的图片链接地址
-                quill.insertEmbed(length, 'image', res.data.url)
+                quill.insertEmbed(length, 'image', res.data)
                 // 调整光标到最后
                 // 调整光标到最后
                 quill.setSelection(length + 1)
                 quill.setSelection(length + 1)
             } else {
             } else {

+ 53 - 23
src/views/modules/activity/add.vue

@@ -29,10 +29,18 @@
                         <el-input v-model="basicForm.activityName" placeholder="请输入活动名称"></el-input>
                         <el-input v-model="basicForm.activityName" placeholder="请输入活动名称"></el-input>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item label="报名时间" prop="signupStartEnd">
                     <el-form-item label="报名时间" prop="signupStartEnd">
-                        <el-date-picker v-model="basicForm.signupStartEnd" @change="handleSignupDateChange" type="datetimerange" format="yyyy-MM-dd HH:mm" range-separator="至" start-placeholder="年/月/日 - -:- -" end-placeholder="年/月/日 - -:- -" style="width: 390px;"></el-date-picker>
+                      <div class="adfac">
+                        <el-date-picker v-model="basicForm.signupStartTime" @change="e=>handleSignupDateChange(e,'signupStartTime')" type="datetime" format="yyyy-MM-dd HH:mm" placeholder="年/月/日 - -:- -" style="width: 180px;"></el-date-picker>
+                        <span style="margin: 0 10px;">至</span>
+                        <el-date-picker v-model="basicForm.signupEndTime" @change="e=>handleSignupDateChange(e,'signupEndTime')" type="datetime" format="yyyy-MM-dd HH:mm" placeholder="年/月/日 - -:- -" style="width: 180px;"></el-date-picker>
+                      </div>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item label="活动时间" prop="activityStartEnd">
                     <el-form-item label="活动时间" prop="activityStartEnd">
-                        <el-date-picker v-model="basicForm.activityStartEnd" @change="handleActivityDateChange" type="datetimerange" format="yyyy-MM-dd HH:mm" range-separator="至" start-placeholder="年/月/日 - -:- -" end-placeholder="年/月/日 - -:- -" style="width: 390px;"></el-date-picker>
+                      <div class="adfac">
+                        <el-date-picker v-model="basicForm.activityStartTime" @change="e=>handleActivityDateChange(e,'activityStartTime')" type="datetime" format="yyyy-MM-dd HH:mm" placeholder="年/月/日 - -:- -" style="width: 180px;"></el-date-picker>
+                        <span style="margin: 0 10px;">至</span>
+                        <el-date-picker v-model="basicForm.activityEndTime" @change="e=>handleActivityDateChange(e,'activityEndTime')" type="datetime" format="yyyy-MM-dd HH:mm" placeholder="年/月/日 - -:- -" style="width: 180px;"></el-date-picker>
+                      </div>
                     </el-form-item>
                     </el-form-item>
                     <el-form-item label="活动地点" prop="districtId">
                     <el-form-item label="活动地点" prop="districtId">
                         <el-select v-model="basicForm.provinceId" placeholder="省" clearable  style="width: 14%" @change="val=>regionChange(val, 'province')">
                         <el-select v-model="basicForm.provinceId" placeholder="省" clearable  style="width: 14%" @change="val=>regionChange(val, 'province')">
@@ -107,37 +115,39 @@
                   </el-form-item>
                   </el-form-item>
                   <el-form-item label="报名人数" class="redLabel">
                   <el-form-item label="报名人数" class="redLabel">
                     <div class="adfac">
                     <div class="adfac">
-                      <el-radio-group v-model="moreForm.recruitmentFlag">
+                      <el-radio-group v-model="moreForm.recruitmentFlag" @change="recruitmentChange">
                         <el-radio :label="1" :value="1">限制</el-radio>
                         <el-radio :label="1" :value="1">限制</el-radio>
                         <el-radio :label="2" :value="2">不限</el-radio>
                         <el-radio :label="2" :value="2">不限</el-radio>
                       </el-radio-group>
                       </el-radio-group>
                       <div class="f-text">最多报名人数</div>
                       <div class="f-text">最多报名人数</div>
-                      <el-input type="number" v-model="moreForm.recruitmentMax" style="width: 157px;" :disabled="moreForm.recruitmentFlag==2" placeholder="请输入"></el-input>
+                      <el-input type="number" min="0" v-model="moreForm.recruitmentMax" style="width: 157px;" :disabled="moreForm.recruitmentFlag==2" placeholder="请输入"></el-input>
                       <div class="f-text">最少报名人数</div>
                       <div class="f-text">最少报名人数</div>
-                      <el-input type="number" v-model="moreForm.recruitmentMin" style="width: 157px;" :disabled="moreForm.recruitmentFlag==2" placeholder="请输入"></el-input>
+                      <el-input type="number" min="0" v-model="moreForm.recruitmentMin" style="width: 157px;" :disabled="moreForm.recruitmentFlag==2" placeholder="请输入"></el-input>
                       <div class="f-tip">活动报名人数超出报名人数后,将不能继续报名。活动报名人数低于最少报名人数时,将会取消活动</div>
                       <div class="f-tip">活动报名人数超出报名人数后,将不能继续报名。活动报名人数低于最少报名人数时,将会取消活动</div>
                     </div>
                     </div>
                   </el-form-item>
                   </el-form-item>
                   <el-form-item label="会员等级" class="redLabel">
                   <el-form-item label="会员等级" class="redLabel">
                     <div class="adfac">
                     <div class="adfac">
-                      <el-radio-group v-model="moreForm.userLevelFlag">
+                      <el-radio-group v-model="moreForm.userLevelFlag" @change="userLevelChange">
                         <el-radio :label="1" :value="1">限制</el-radio>
                         <el-radio :label="1" :value="1">限制</el-radio>
                         <el-radio :label="0" :value="0">不限</el-radio>
                         <el-radio :label="0" :value="0">不限</el-radio>
                       </el-radio-group>
                       </el-radio-group>
-                      <el-input type="number" v-model="moreForm.userLevel" style="width: 157px;margin-left: 30px;" :disabled="moreForm.userLevelFlag==0"></el-input>
-                      <div class="f-text2">及以上等级</div>
+                      <el-select v-model="moreForm.userLevel" style="width: 157px;margin-left: 30px;" :disabled="moreForm.userLevelFlag==0">
+                        <el-option v-for="item in 6" :key="item" :label="item" :value="item"></el-option>
+                      </el-select>
+                      <div class="f-text2">级</div>
                     </div>
                     </div>
                   </el-form-item>
                   </el-form-item>
                   <el-form-item label="会员年龄" class="redLabel">
                   <el-form-item label="会员年龄" class="redLabel">
                     <div class="adfac">
                     <div class="adfac">
-                      <el-radio-group v-model="moreForm.userAgeFlag">
+                      <el-radio-group v-model="moreForm.userAgeFlag" @change="userAgeChange">
                         <el-radio :label="1" :value="1">限制</el-radio>
                         <el-radio :label="1" :value="1">限制</el-radio>
                         <el-radio :label="2" :value="2">不限</el-radio>
                         <el-radio :label="2" :value="2">不限</el-radio>
                       </el-radio-group>
                       </el-radio-group>
                       <div class="f-text">最小参加年龄</div>
                       <div class="f-text">最小参加年龄</div>
-                      <el-input type="number" v-model="moreForm.userAgeMin" style="width: 157px;" :disabled="moreForm.userAgeFlag==2" placeholder="请输入"></el-input>
+                      <el-input min="0" type="number" v-model="moreForm.userAgeMin" style="width: 157px;" :disabled="moreForm.userAgeFlag==2" placeholder="请输入"></el-input>
                       <div class="f-text">最大参加年龄</div>
                       <div class="f-text">最大参加年龄</div>
-                      <el-input type="number" v-model="moreForm.userAgeMax" style="width: 157px;" :disabled="moreForm.userAgeFlag==2" placeholder="请输入"></el-input>
+                      <el-input min="0" type="number" v-model="moreForm.userAgeMax" style="width: 157px;" :disabled="moreForm.userAgeFlag==2" placeholder="请输入"></el-input>
                     </div>
                     </div>
                   </el-form-item>
                   </el-form-item>
                   <el-form-item label="公益支持" class="redLabel">
                   <el-form-item label="公益支持" class="redLabel">
@@ -150,7 +160,7 @@
                         </template>
                         </template>
                       </el-select>
                       </el-select>
                       <div v-if="moreForm.activityLimit==1" class="adfac">
                       <div v-if="moreForm.activityLimit==1" class="adfac">
-                        <el-input type="number" v-model="moreForm.valueLimit" style="width: 252px;margin-left: 17px;" placeholder="请输入"></el-input>
+                        <el-input min="1" type="number" v-model="moreForm.valueLimit" style="width: 252px;margin-left: 17px;" placeholder="请输入"></el-input>
                         <div class="f-text2">爱心值</div>
                         <div class="f-text2">爱心值</div>
                       </div>
                       </div>
                       <!-- <div v-if="moreForm.activityLimit==2" class="adfac">
                       <!-- <div v-if="moreForm.activityLimit==2" class="adfac">
@@ -164,7 +174,7 @@
                   </el-form-item>
                   </el-form-item>
                   <el-form-item label="报名次数限制">
                   <el-form-item label="报名次数限制">
                     <div class="adfac">
                     <div class="adfac">
-                      <el-input type="number" v-model="moreForm.timesLimit" style="width: 391px;" placeholder="请输入"></el-input>
+                      <el-input min="1" type="number" v-model="moreForm.timesLimit" style="width: 391px;" placeholder="请输入"></el-input>
                       <div class="f-tip">不填默认不限制</div>
                       <div class="f-tip">不填默认不限制</div>
                     </div>
                     </div>
                   </el-form-item>
                   </el-form-item>
@@ -180,7 +190,7 @@
                 </el-form>
                 </el-form>
                 <div class="btns adfac">
                 <div class="btns adfac">
                     <el-button type="default" @click="handlePrevious">上一步</el-button>
                     <el-button type="default" @click="handlePrevious">上一步</el-button>
-                    <el-button type="primary" @click="handleSave" style="margin-left: 16px;">保存</el-button>
+                    <el-button type="primary" @click="handleSave" style="margin-left: 16px;">发布</el-button>
                 </div>
                 </div>
             </div>
             </div>
         </div>
         </div>
@@ -265,7 +275,7 @@ export default {
         recruitmentMax: '',
         recruitmentMax: '',
         recruitmentMin: '',
         recruitmentMin: '',
         userLevelFlag: 1,
         userLevelFlag: 1,
-        userLevel: '',
+        userLevel: 1,
         userAgeFlag: 1,
         userAgeFlag: 1,
         userAgeMin: '',
         userAgeMin: '',
         userAgeMax: '',
         userAgeMax: '',
@@ -315,6 +325,28 @@ export default {
     })
     })
   },
   },
   methods: {
   methods: {
+    recruitmentChange (e) {
+      if (e === 1) {
+        this.moreForm.recruitmentMax = 1
+        this.moreForm.recruitmentMin = 1
+      } else {
+        this.moreForm.recruitmentMax = 0
+        this.moreForm.recruitmentMin = 0
+      }
+    },
+    userLevelChange (e) {
+      if (e === 1) this.moreForm.userLevel = 1
+      else this.moreForm.userLevel = 0
+    },
+    userAgeChange (e) {
+      if (e === 1) {
+        this.moreForm.userAgeMax = 1
+        this.moreForm.userAgeMin = 1
+      } else {
+        this.moreForm.userAgeMax = 0
+        this.moreForm.userAgeMin = 0
+      }
+    },
     regionChange (val, type) {
     regionChange (val, type) {
       if (type === 'province') {
       if (type === 'province') {
         this.basicForm.cityId = ''
         this.basicForm.cityId = ''
@@ -376,13 +408,11 @@ export default {
         this.organizerOptions = res.data.data.list.filter(item => item.type === 2) || []
         this.organizerOptions = res.data.data.list.filter(item => item.type === 2) || []
       })
       })
     },
     },
-    handleSignupDateChange (val) {
-      this.basicForm.signupStartTime = moment(val[0]).format('YYYY-MM-DD HH:mm')
-      this.basicForm.signupEndTime = moment(val[1]).format('YYYY-MM-DD HH:mm')
+    handleSignupDateChange (val, key) {
+      this.basicForm[key] = moment(val).format('YYYY-MM-DD HH:mm')
     },
     },
-    handleActivityDateChange (val) {
-      this.basicForm.activityStartTime = moment(val[0]).format('YYYY-MM-DD HH:mm')
-      this.basicForm.activityEndTime = moment(val[1]).format('YYYY-MM-DD HH:mm')
+    handleActivityDateChange (val, key) {
+      this.basicForm[key] = moment(val).format('YYYY-MM-DD HH:mm')
     },
     },
     beforeUploadHandle (file, index, fixedNumber) {
     beforeUploadHandle (file, index, fixedNumber) {
       if (file.type !== 'image/jpg' && file.type !== 'image/jpeg' && file.type !== 'image/png') {
       if (file.type !== 'image/jpg' && file.type !== 'image/jpeg' && file.type !== 'image/png') {
@@ -449,7 +479,7 @@ export default {
         recruitmentMax: '',
         recruitmentMax: '',
         recruitmentMin: '',
         recruitmentMin: '',
         userLevelFlag: 1,
         userLevelFlag: 1,
-        userLevel: '',
+        userLevel: 1,
         userAgeFlag: 1,
         userAgeFlag: 1,
         userAgeMin: '',
         userAgeMin: '',
         userAgeMax: '',
         userAgeMax: '',
@@ -530,7 +560,7 @@ export default {
 
 
           this.$http[dto.id ? 'put' : 'post']('/core/activity', dto).then(res => {
           this.$http[dto.id ? 'put' : 'post']('/core/activity', dto).then(res => {
             if (res.data.code !== 0) return this.$message.error(res.data.msg)
             if (res.data.code !== 0) return this.$message.error(res.data.msg)
-            this.$message.success(res.data.msg)
+            this.$message.success('发布成功')
             this.$router.push('/activity-list')
             this.$router.push('/activity-list')
           })
           })
         } else {
         } else {

+ 7 - 7
src/views/modules/activity/list.vue

@@ -33,23 +33,23 @@
           </el-row>
           </el-row>
           <el-table :data="dataList" border cell-class-name="vertical-top-cell" v-loading="loading" empty-text="暂无活动" style="margin-top: 24px;">
           <el-table :data="dataList" border cell-class-name="vertical-top-cell" v-loading="loading" empty-text="暂无活动" style="margin-top: 24px;">
               <el-table-column prop="id" label="活动ID" width="200"></el-table-column>
               <el-table-column prop="id" label="活动ID" width="200"></el-table-column>
-              <el-table-column prop="activityName" label="活动名称" width="200"></el-table-column>
-              <el-table-column prop="typeName" label="活动类型" width="100"></el-table-column>
-              <el-table-column prop="categoryName" label="活动分类" width="100"></el-table-column>
-              <el-table-column prop="channelName" label="渠道方" width="100"></el-table-column>
-              <el-table-column prop="organizerName" label="举办方" width="100"></el-table-column>
+              <el-table-column prop="activityName" label="活动名称" width="350"></el-table-column>
+              <el-table-column prop="typeName" label="活动类型" width="120"></el-table-column>
+              <el-table-column prop="categoryName" label="活动分类" width="120"></el-table-column>
+              <el-table-column prop="channelName" label="渠道方" width="120"></el-table-column>
+              <el-table-column prop="organizerName" label="举办方" width="120"></el-table-column>
               <el-table-column prop="" label="报名时间" width="320">
               <el-table-column prop="" label="报名时间" width="320">
                 <template #default="scope">{{ scope.row.signupStartTime }} - {{ scope.row.signupEndTime }}</template>
                 <template #default="scope">{{ scope.row.signupStartTime }} - {{ scope.row.signupEndTime }}</template>
               </el-table-column>
               </el-table-column>
               <el-table-column prop="" label="活动时间" width="320">
               <el-table-column prop="" label="活动时间" width="320">
                 <template #default="scope">{{ scope.row.activityStartTime }} - {{ scope.row.activityEndTime }}</template>
                 <template #default="scope">{{ scope.row.activityStartTime }} - {{ scope.row.activityEndTime }}</template>
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="" label="报名人数" width="100">
+              <el-table-column prop="" label="报名人数" width="120">
                 <template #default="scope">
                 <template #default="scope">
                   <div class="adfac"><span style="color: #00AE57;">{{ scope.row.recruitmentNow||0 }}</span>/{{ scope.row.recruitmentMax||'无限制' }}</div>
                   <div class="adfac"><span style="color: #00AE57;">{{ scope.row.recruitmentNow||0 }}</span>/{{ scope.row.recruitmentMax||'无限制' }}</div>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="" label="上下架" width="100">
+              <el-table-column prop="" label="上下架" width="120">
                 <template #default="scope">
                 <template #default="scope">
                   <span v-if="scope.row.state==1" style="color: #00AE57;">已上架</span>
                   <span v-if="scope.row.state==1" style="color: #00AE57;">已上架</span>
                   <span v-if="scope.row.state==0">已下架</span>
                   <span v-if="scope.row.state==0">已下架</span>

+ 1 - 0
src/views/modules/member/detail.vue

@@ -361,6 +361,7 @@ export default {
         img{
         img{
             width: 64px;
             width: 64px;
             height: 64px;
             height: 64px;
+            border-radius: 50%;
             margin-bottom: 26px;
             margin-bottom: 26px;
         }
         }
     }
     }